From 63eac6ee58ec8d3f446aa2b546cfc504322ed19a Mon Sep 17 00:00:00 2001 From: jaro Date: Wed, 18 Nov 2020 13:46:51 +0100 Subject: [PATCH] Upload files to '' Selenium script for fucking CMS framework... --- test_minv.py | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 test_minv.py diff --git a/test_minv.py b/test_minv.py new file mode 100644 index 0000000..2bd17e9 --- /dev/null +++ b/test_minv.py @@ -0,0 +1,105 @@ +#!/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")) + \ No newline at end of file