Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- from selenium.common.exceptions import TimeoutException
- from selenium.common.exceptions import NoSuchElementException
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.common.by import By
- import json
- # pornesc Firefox cu direct path to geckodriver
- driver = webdriver.Firefox(executable_path='C:\Python\geckodriver.exe')
- # definesc user, parola si wait time
- user = 'lacerta'
- pwd = 'yardlabs'
- timeout = 5
- # pun url de la login screen
- driver.get('http://yardlabs.eu/live/dashboard/login')
- try:
- # ma loghez efectiv
- username = driver.find_element_by_name('username')
- username.send_keys(user)
- password = driver.find_element_by_name('password')
- password.send_keys(pwd)
- submit = driver.find_element_by_xpath("//button[@type='submit']")
- submit.click()
- # astept sa apara elementul cu id 'history'
- element_present = EC.presence_of_element_located((By.ID, 'history'))
- WebDriverWait(driver, timeout).until(element_present)
- table = driver.find_element_by_id('history')
- head = table.find_element_by_tag_name('thead')
- body = table.find_element_by_tag_name('tbody')
- print ('Succes!')
- #copiez headerul care e constant
- file_header = []
- file_data = []
- head_line = head.find_element_by_tag_name("tr")
- file_header = [header.text.encode('utf8') for header in head_line.find_elements_by_tag_name('th')]
- file_data.append("".join(str(file_header)))
- f = open('yard.txt', "r+")
- f.write("".join(str(file_data)))
- #functie care copiaza datele de pe fiecare pagina de sub header
- total_masuratori = []
- def copy_data(page_number):
- masuratori = []
- body_rows = body.find_elements_by_tag_name('tr')
- for row in body_rows:
- data = row.find_elements_by_tag_name('td')
- file_row = []
- for datum in data:
- datum_text = datum.text.encode('utf8')
- file_row.append(datum_text)
- masuratori.append("".join(str(file_row)))
- return masuratori
- #f.write(''+"\n".join(masuratori))
- #copy_data(1)
- #parcurg paginile fiecare in parte pana se termina
- page_number = 1
- while True:
- try:
- link = driver.find_element_by_link_text(str(page_number))
- link.click()
- total_masuratori.append(copy_data(page_number))
- except NoSuchElementException:
- break
- page_number = page_number+1
- json.dump(total_masuratori,
- f,
- sort_keys=True,
- indent=4,
- separators=(',', ': '))
- f.close()
- except NoSuchElementException:
- self.fail("Could not find element on page")
- except TimeoutException:
- print ("Timed out waiting for page to load")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement