#!/usr/bin/python3 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import csv import sys import codecs contacts = [] odbor = {} path = ('KC','TT','Hlohovec') user = 'ouhc' password = 'XXX' f = open('telzoz2020hc.csv','r',encoding='cp1250') rows = csv.reader(f,delimiter=';') for r in rows: contacts.append(r) odbor[r[2]] = 1 print(odbor.keys()) # ['Ing. Ľuboš Sloboda', 'prednosta', 'Organizačný odbor', '033 / 5564 205', '205', '117', '1', ''] # ["Meno","Adresa","Zaradenie","Telefon","Klapka","Poschodie","Fax"] #This example requires Selenium WebDriver 3.13 or newer with webdriver.Firefox() as driver: wait = WebDriverWait(driver, 10) driver.get("https://www.minv.sk/swift/login/") driver.find_element(By.NAME, "name").send_keys(user) driver.find_element(By.NAME, "password").send_keys(password) submit_btn = driver.find_element_by_xpath("//form/table/tbody/tr[3]/td[3]/input") submit_btn.submit() first_result = wait.until(EC.title_contains("Štruktúra")) driver.find_element_by_xpath("//b[contains(.,'Moduly')]").click() first_result = wait.until(EC.title_contains("Moduly")) driver.switch_to.frame("details") driver.find_element_by_xpath("//img[@alt=\"Nastavenie modulu 'Kontakty'\"]").click() first_result = wait.until(EC.presence_of_element_located((By.LINK_TEXT, 'Zoznam kontaktov'))) driver.find_element_by_link_text('Zoznam kontaktov').click() first_result = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'main_table'))) driver.find_element_by_link_text(path[0]).click() first_result = wait.until(EC.presence_of_element_located((By.LINK_TEXT, path[1]))) driver.find_element_by_link_text(path[1]).click() first_result = wait.until(EC.presence_of_element_located((By.LINK_TEXT, path[2]))) driver.find_element_by_link_text(path[2]).click() for o in odbor.keys(): first_result = wait.until(EC.presence_of_element_located((By.XPATH, "//td[contains(.,'Počet kontaktov')]"))) if driver.find_elements_by_link_text(o): continue driver.find_element_by_css_selector("img[alt='Pridať kategóriu']").click() first_result = wait.until(EC.presence_of_element_located((By.XPATH, "//td[contains(.,'Nová kategória')]"))) driver.find_element(By.NAME, "Name").send_keys(o) driver.find_element_by_css_selector("input[alt='Potvrdiť']").submit() #### FOR #### lo = '' for c in contacts: # ['Ing. Ľuboš Sloboda', 'prednosta', 'Organizačný odbor', '033 / 5564 205', '205', '117', '1', '', 'email@minv.sk'] data = (c[0],c[1],c[3],c[7],c[8]) first_result = wait.until(EC.presence_of_element_located((By.XPATH, "//td[contains(.,'Počet kontaktov')]"))) if lo != c[2] and lo != '': first_result = driver.find_element_by_link_text(path[2]).click() first_result = wait.until(EC.presence_of_element_located((By.XPATH, "//td[contains(.,'Počet kontaktov')]"))) first_result = driver.find_element_by_link_text(c[2]).click() first_result = wait.until(EC.presence_of_element_located((By.LINK_TEXT, c[2]))) driver.find_element_by_css_selector("img[alt='Pridať kontakt']").click() first_result = wait.until(EC.presence_of_element_located((By.XPATH, "//td[contains(.,'Nový kontakt')]"))) driver.find_element(By.NAME, "Status").click() driver.find_element(By.NAME, "Data[1]").send_keys(data[0]) driver.find_element(By.NAME, "Data[2]").send_keys(data[1]) driver.find_element(By.NAME, "Data[3]").send_keys(data[2]) if data[3] != '': driver.find_element(By.NAME, "Data[4]").send_keys(data[3]) if data[4] != '': driver.find_element(By.NAME, "Data[5]").send_keys(data[4]) driver.find_element_by_css_selector("input[alt='Potvrdiť']").submit() lo = c[2] ### END FOR ### driver.implicitly_wait(30) print(driver.page_source) #print(first_result.get_attribute("textContent"))