def create_experiment(self): element = self.browser.find_element_by_xpath('//*[@id="myTable"]/tbody/tr[1]/td[6]/a[2]') element.click() time.sleep(3) element = self.browser.find_element_by_xpath('//*[@id="portfolio"]/div/a') element.click() time.sleep(3) element = self.browser.find_element_by_id('nombre') element.send_keys('Resultado Experimento 1') element = self.browser.find_element_by_id('fechaInicio') element.send_keys('2017-12-31') element = Select(self.browser.find_element_by_id('responsable')) element.select_by_index(1) element = Select(self.browser.find_element_by_id('estado')) element.select_by_index(2) element = self.browser.find_element_by_id('prioridad') element.send_keys('1') element = self.browser.find_element_by_id('descripcion') element.send_keys('Experimento extraccion de muestra exitosa') element = self.browser.find_element_by_xpath('//*[@id="formAddExperiment"]/div[8]/input') element.click() time.sleep(3) element = self.browser.find_element_by_xpath('//*[@id="formAddExperiment"]/div[8]/a') element.click() time.sleep(3)
def test_all(self): self.driver.get("http://127.0.0.1:5000/") # Login Button self.driver.implicitly_wait(5) element = self.driver.find_element_by_id('loginButton') element.click() self.driver.implicitly_wait(10) # Create user element = self.driver.find_element_by_id('signupNav') element.click() element = self.driver.find_element_by_name('email') element.send_keys(self.usr['email']) element = self.driver.find_element_by_name('name') element.send_keys(self.usr['name']) element = self.driver.find_element_by_name('password') element.send_keys(self.usr['password']) element = self.driver.find_element_by_id('signupButton') element.click() element = self.driver.find_element_by_id('loginNav') element.click() self.driver.implicitly_wait(10) # User login element = self.driver.find_element_by_name('email') element.send_keys(self.usr['email']) element = self.driver.find_element_by_name('password') element.send_keys(self.usr['password']) element = self.driver.find_element_by_id('loginButton') element.click() self.driver.implicitly_wait(5) # Fill form for i in self.data: if self.data[i]['type'] == "radio": element = self.driver.find_element_by_id(self.data[i]['id']) element.click() pass elif self.data[i]['type'] == "dropdown": element = Select( self.driver.find_element_by_id(self.data[i]['id'])) element.select_by_visible_text(self.data[i]['value']) pass elif self.data[i]['type'] == "textbox": element = self.driver.find_element_by_id(self.data[i]['id']) element.clear() element.send_keys(self.data[i]['value']) pass else: print("problem with ", i) self.driver.implicitly_wait(5) self.driver.find_element_by_id('submit-button').click() self.driver.implicitly_wait(5)
def sign_in(self): option = webdriver.ChromeOptions() option.add_argument('--headless') browser = webdriver.Chrome('/usr/bin/chromedriver', chrome_options=option) browser.get("http://login.cuit.edu.cn/Login/xLogin/Login.asp") try: browser.find_element_by_name('txtId').send_keys(self.uid) browser.find_element_by_name('txtMM').send_keys(self.pwd) browser.find_element_by_id('IbtnEnter').click() time.sleep(0.5) t = time.strftime('%m%d', time.localtime()) browser.find_element_by_link_text(t + '疫情防控——师生健康状态采集').click() time.sleep(0.5) s1 = Select(browser.find_element_by_name("sF21650_5")) s1.select_by_value("1") s2 = Select(browser.find_element_by_name("sF21650_6")) s2.select_by_value("1") s3 = Select(browser.find_element_by_name("sF21650_7")) s3.select_by_value("1") s4 = Select(browser.find_element_by_name("sF21650_8")) s4.select_by_value("1") s5 = Select(browser.find_element_by_name("sF21650_9")) s5.select_by_value("1") s6 = Select(browser.find_element_by_name("sF21912_1")) s6.send_keys("北街") s6 = Select(browser.find_element_by_name("sF21912_2")) s6.send_keys("买生活用品") s7 = Select(browser.find_element_by_name("sF21912_3")) s7.select_by_value("1") s8 = Select(browser.find_element_by_name("sF21912_4")) s8.select_by_value("06") s9 = Select(browser.find_element_by_name("sF21912_5")) s9.select_by_value("3") s10 = Select(browser.find_element_by_name("sF21912_6")) s10.select_by_value("23") browser.find_element_by_name("B2").click() saveFile(t + '打卡成功!') except Exception as e: print("there is an exception:" + str(e)) saveFile("打卡失败:签到代码存在异常" + str(e)) finally: browser.quit()
def test_login(self): # Crear el usuario self.browser.get(self.baseUrl) self.browser.implicitly_wait(10) link = self.browser.find_element_by_id('link_iniciar_sesion') link.click() time.sleep(3) element = self.browser.find_element_by_id('username') element.send_keys('test') clave = self.browser.find_element_by_id('password') clave.send_keys('agiles123') btn = self.browser.find_element_by_id('btn_iniciar_sesion') btn.click() time.sleep(3) link = self.browser.find_element_by_id('linkProtocolos') link.click() time.sleep(3) link = self.browser.find_element_by_id('linkAgregarProtocolo') link.click() time.sleep(3) element = self.browser.find_element_by_id('titulo') element.send_keys('Protocolo Prueba') element = Select(self.browser.find_element_by_id('categoria')) element.select_by_index(1) element = self.browser.find_element_by_id('habilitado') element.click() element = self.browser.find_element_by_xpath( '//div[@class="jqte_editor"]') element.send_keys('Protocolo Prueba') botonGuardar = self.browser.find_element_by_id('btn_guardar') botonGuardar.click() self.browser.implicitly_wait(3) time.sleep(2)
def distro_tree_advance_search_process(self,name,osmajor,arch="",variant=""): driver=self.driver driver.find_element_by_id("showadvancedsearch").click() driver.implicitly_wait(2) table=WebDriverSelect(driver.find_element_by_id("search_0_table")) table.select_by_value("Name") operation=WebDriverSelect(driver.find_element_by_id("search_0_operation")) operation.select_by_value("contains") value=driver.find_element_by_id("search_0_value") value.send_keys(name) driver.find_element_by_xpath("//a[@id='doclink']").click() driver.implicitly_wait(4) table=WebDriverSelect(driver.find_element_by_id("search_1_table")) table.select_by_value("OSMajor") operation=WebDriverSelect(driver.find_element_by_id("search_1_operation")) operation.select_by_value("contains") value=driver.find_element_by_id("search_1_value") value.send_keys(osmajor) i='2' if arch != "" : driver.find_element_by_xpath("//a[@id='doclink']").click() driver.implicitly_wait(4) table=WebDriverSelect(driver.find_element_by_id("search_"+i+"_table")) table.select_by_value("Arch") operation=WebDriverSelect(driver.find_element_by_id("search_"+i+"_operation")) operation.select_by_value("is") value=WebDriverSelect(driver.find_element_by_id("search_"+i+"_value")) value.select_by_value("x86_64") i='3' if variant != "" : driver.find_element_by_xpath("//a[@id='doclink']").click() driver.implicitly_wait(4) table=WebDriverSelect(driver.find_element_by_id("search_"+i+"_table")) table.select_by_value("Variant") operation=WebDriverSelect(driver.find_element_by_id("search_"+i+"_operation")) operation.select_by_value("contains") value=driver.find_element_by_id("search_"+i+"_value") value.send_keys(variant)
def create_poject(self): linkProjects = self.browser.find_element_by_id('linkProjects') linkProjects.click() time.sleep(3) linkReport = self.browser.find_element_by_xpath('//*[@id="portfolio"]/div/a') linkReport.click() time.sleep(3) element = self.browser.find_element_by_id('nombre') element.send_keys('1 - Test Resultado Experimento') element = self.browser.find_element_by_id('fechaInicio') element.send_keys('2017-10-31') element = self.browser.find_element_by_id('fechaFinal') element.send_keys('2017-12-31') element = Select(self.browser.find_element_by_id('patrocinador')) element.select_by_index(1) element = Select(self.browser.find_element_by_id('estado')) element.select_by_index(2) element = self.browser.find_element_by_id('prioridad') element.send_keys('1') element = self.browser.find_element_by_id('descripcion') element.send_keys('Test Resultado Experimento descripcion') element = self.browser.find_element_by_xpath('//*[@id="formProject"]/div[8]/input') element.click() time.sleep(3) element = self.browser.find_element_by_xpath('//*[@id="formProject"]/div[8]/a') element.click() time.sleep(3)
def fill_task_fields(driver, field_data, task_name): """ Fill fields based on dictionary with locators, types and values driver - instance of selenium webdriver field_data - dictionary with fields. Key is fieldname;fieldtype. Value is value to pass task_name, str - name of current task """ for field, value in field_data.items(): try: data = field.split(';') if data[1] == 'select': cur_field = Select(select_input_by_label(driver, data[0], data[1])) try: cur_field.select_by_visible_text(value) except ( EC.NoSuchElementException, EC.StaleElementReferenceException, ElementNotVisibleException ): print(f"Select option {field} is invalid in task {task_name}") elif data[1] == 'input-af': cur_field = select_input_by_label(driver, data[0], 'input') cur_field.send_keys(value) time.sleep(3) # driver.find_element_by_xpath( # f'//div[@id="tooltip"]//li[contains(text(),"{value}")]' # ).click() cur_field.send_keys(Keys.ARROW_DOWN, Keys.RETURN) elif data[1] == 'input-2': cur_field = select_input_by_label(driver, data[0], 'input', 2) cur_field.send_keys(value) elif data[1] == 'input-sp': value_str = data[0].replace('–', '-') cur_field = select_input_by_label(driver, value_str, 'input') cur_field.send_keys(value) else: cur_field = select_input_by_label(driver, data[0], data[1]) if value == "today": date_value = time.strftime("%Y-%m-%dT%H:%M:%S") cur_field.send_keys(date_value) else: cur_field.send_keys(value) except ( EC.NoSuchElementException, EC.StaleElementReferenceException, ElementNotVisibleException ): print(f"Field {data} is invalid in task {task_name}") raise time.sleep(1)
def bna_direct_remboursement(): driver.get( "http://www.bna.tn/site/fr/simulateur.php?id_article=587#horizontalTab2" ) type = Select(driver.find_element_by_xpath('//*[@id="produit2"]')) type_list = [ "Crédits Directs aux Particuliers et aux Professionnels", "PRET AUTO- Crédit Direct Acquisition véhicule", "PRET PERSO- Crédit Direct Dépenses Courantes", "PRET IMMO - Crédit Direct Aménagement Logement Hypothécaire", "PRET PERSO - Crédit Direct Aménagement", "PRET IMMO- Crédit Direct Acquisition Logement", "PRET IMMO- Crédit Direct Construction", "PRET IMMO- Crédit Direct Achat Terrain", "PRET PERSO - Crédit Direct Aménagement Hypothécaire" ] for index in range(0, (len(type_list) - 1)): print("choisir un Catégorie") print(index.__str__() + ") " + type_list[index]) a = int(input()) type.select_by_index(a + 1) montant = driver.find_element_by_xpath('//*[@id="salaire"]') montant.clear() b_montant = getpass.getpass(" enter votre salaire en dinars ") montant.send_keys(b_montant) retenue = driver.find_element_by_xpath('//*[@id="retenue"]') retenue.clear() b_retenue = getpass.getpass(" enter le retenue en dinars ") retenue.send_keys(b_retenue) remboursement = driver.find_element_by_xpath( '//*[@id="slider_duree2"]/span') dure = int( getpass.getpass( "svp entrer la durée de credit voulu en mois qui ne depasse pas 240" )) for _ in itertools.repeat(None, int(dure - 1)): remboursement.send_keys(Keys.ARROW_RIGHT) WebDriverWait(driver, 15).until( EC.presence_of_element_located((By.XPATH, '//*[@id="periodicite"]'))) type_remboursement = Select( driver.find_element_by_xpath( '/html/body/div[2]/div/div[4]/div/div/div[1]/div[1]/div/div/div[2]/form/div[2]/div[3]/div/select' )) # type_r = driver.find_element_by_xpath('//*[@id="periodicite"]') type_r_list = ["Mensuelle", "Trimestrielle", "Semestrielle", "Annuelle"] for index in range(0, (len(type_r_list))): print("choisir un Catégorie") print(index.__str__() + ") " + type_r_list[index]) a = int(input()) type_remboursement.select_by_visible_text(type_r_list[a]) type_remboursement = driver.find_element_by_id("date_echeance2") type_remboursement.clear() tr = getpass.getpass( "entrer la date de debut de remboursement sous la forme de jj-mm-aaaa") type_remboursement.send_keys(tr) calculer = driver.find_element_by_xpath( '/html/body/div[2]/div/div[4]/div/div/div[1]/div[1]/div/div/div[2]/form/input' ) driver.execute_script("arguments[0].click();", calculer) time.sleep(5) res = driver.find_elements_by_css_selector( '#horizontalTab > div > div.smart-forms.resp-tab-content.resp-tab-content-active > div > div.pricetable-holder > div' ) for i in res: print(i.text)
def bna_direct_financement(): driver.get( "http://www.bna.tn/site/fr/simulateur.php?id_article=587#horizontalTab1" ) type = driver.find_element_by_id("produit") type_credit = Select(type) type_list = [ "Crédits Directs aux Particuliers et aux Professionnels", "PRET AUTO- Crédit Direct Acquisition véhicule", "PRET PERSO- Crédit Direct Dépenses Courantes", "PRET IMMO - Crédit Direct Aménagement Logement Hypothécaire", "PRET PERSO - Crédit Direct Aménagement", "PRET IMMO- Crédit Direct Acquisition Logement", "PRET IMMO- Crédit Direct Construction", "PRET IMMO- Crédit Direct Achat Terrain", "PRET PERSO - Crédit Direct Aménagement Hypothécaire" ] ctype = int( getpass.getpass("enter le type de credit voulu : \n 0 " + type_list[0] + " \n 1 pour " + type_list[0] + "\n 2 pour " + type_list[0] + " \n 3 pour " + type_list[3] + "\n 4 " + type_list[4] + " \n 5 pour " + type_list[5] + "\n 6 pour " + type_list[6] + " \n 7 pour " + type_list[7] + "\n 8 pour " + type_list[8])) type_credit.select_by_visible_text(type_list[ctype]) montant = driver.find_element_by_xpath('//*[@id="montant"]') montant.clear() b_montant = getpass.getpass(" enter le montant de credit voulu en dinars ") montant.send_keys(b_montant) type_r = driver.find_element_by_id("periodicite") type_remboursement = Select(type_r) type_r_list = ["Mensuelle", "Trimestrielle", "Semestrielle", "Annuelle"] ctyper = getpass.getpass( " enter la Périodicité de remboursement voulu : \n 0 pour Mensuelle \n 1 pour Trimestrielle \n 2 pour Semestrielle \n 3 pour Annuelle " ) type_remboursement.select_by_visible_text(type_r_list[int(ctyper)]) remboursement = driver.find_element_by_xpath( '//*[@id="slider_duree"]/span') dure = int( getpass.getpass( "svp entrer la durée de credit voulu en mois qui ne depasse pas 300" )) for _ in itertools.repeat(None, int(dure - 1)): remboursement.send_keys(Keys.ARROW_RIGHT) type_remboursement = driver.find_element_by_xpath( '//*[@id="date_echeance"]') type_remboursement.clear() tr = getpass.getpass( "entrer la date de debut de remboursement sous la forme de jj-mm-aaaa") type_remboursement.send_keys(tr) calculer = driver.find_element_by_id("envoyer") calculer.click() time.sleep(1) res = driver.find_element_by_xpath( '//*[@id="horizontalTab"]/div/div[1]/div/div[2]/div/b[2]') print(res.text)
def getPatientList(self): url = ( f"http://{self.server}/hcis_nrsque/Default.aspx" + f"?PBCommandParm=userid={self.username}|passwd={self.password}|" + f"sid={self.sid}|hostname={self.client_name}|" + f"ipaddr={self.client_ip}|macaddr={self.client_mac}|" + f"srvname={self.server}|") HNs = [] for CLINIC_ID in CLINIC_IDS: self.driver.delete_all_cookies() self.driver.get(url) # wait waitForPageReady(wait=self.wait) while True: clickNew(self.wait) # wait waitForPageReady(wait=self.wait) # get value of clinic soup = BeautifulSoup(self.driver.page_source, "lxml") clinic_id = soup.find("input", { "id": "objdw_ext_ovstost_0_1" }).get("value") if not clinic_id: break first_hcis_class = praseHN(self.driver.page_source)[0] # set start date start_date = "01/01/2500" start_date_id = "objdw_ext_cnq_0_1" setInputDate(wait=self.wait, input_id=start_date_id, date_str=start_date) # select clinic clicnic_select_id = "objdw_ext_cnq_0_6" clicnic_input_name = "c_section_0" clinic_select = self.wait.until( EC.element_to_be_clickable((By.ID, clicnic_select_id))) clinic_select = Select(clinic_select) clinic_select.select_by_visible_text(CLINIC_ID[1]) # allow js blur effect to run clinic_select = self.wait.until( EC.element_to_be_clickable((By.ID, clicnic_select_id))) clinic_select.send_keys(Keys.TAB) # wait for the form to update self.wait.until( EC.text_to_be_present_in_element_value( (By.NAME, clicnic_input_name), CLINIC_ID[0])) # click search search_icon_css = "input[name='btn_find_0']" search_icon = self.wait.until( EC.element_to_be_clickable((By.CSS_SELECTOR, search_icon_css))) search_icon.click() # wait self.wait.until( lambda d: praseHN(d.page_source)[0] != first_hcis_class) # read hn hcis_class, page_hns = praseHN(self.driver.page_source) HNs = HNs + page_hns while True: link = isNextPageLinkExists(driver=self.driver, wait=self.wait) if link: link.click() self.wait.until( lambda d: praseHN(d.page_source)[0] != hcis_class) HNs = HNs + praseHN(self.driver.page_source)[1] else: break return list(set(HNs))