Best Python code snippet using elementium_python
se.py
Source:se.py
...288 if wait:289 return elements.until(lambda e: len(e) > 0, ttl=ttl)290 else:291 return elements292 def find_with_wait(self, selector, only_displayed=True, ttl=None):293 """Find the elements that match the given selector with waiting294 This is equivalent to calling find() with ``wait=True``.295 :param selector: The selector to use296 :param only_displayed: Whether or not to only return elements that297 are displayed298 :param ttl: The minimum number of seconds to keep retrying299 :returns: An :class:`Elements` object containing the web elements that300 match the :attr:`selector`301 """302 s = self.find(303 selector, only_displayed=only_displayed, wait=True, ttl=ttl)304 if only_displayed:305 s.insist(lambda e: e.is_displayed())306 else:...
selcad.py
Source:selcad.py
...57options = Options()58options.page_load_strategy = 'eager'59options.add_experimental_option("debuggerAddress", f"127.0.0.1:{debug_port}")60driver = webdriver.Chrome(options=options, service=Service(executable_path='/home/gui/selcad/chromedriver'))61def find_with_wait(xpath):62 return WebDriverWait(driver, timeout=DONT_CARE_WAIT).until(EC.element_to_be_clickable((By.XPATH, xpath)))63def find_with_wait2(xpath):64 return WebDriverWait(driver, timeout=DONT_CARE_WAIT).until(EC.element_located_to_be_selected((By.XPATH, xpath)))65def find_with_wait3(xpath):66 return WebDriverWait(driver, timeout=DONT_CARE_WAIT).until(EC.presence_of_element_located((By.XPATH, xpath)))67def find_with_wait4(xpath):68 return WebDriverWait(driver, timeout=DONT_CARE_WAIT).until(EC.visibility_of_element_located((By.XPATH, xpath)))69# url70def get_cadastre_until_it_opens():71 driver.get("https://cadastre.mimt.gov.ir")72 # refresh until we find username box73 while True:74 try:75 WebDriverWait(driver, timeout=0.5).until(76 EC.presence_of_element_located((By.XPATH, '//*[@id="ULogin1_txt_Username"]')))77 break78 except (TimeoutException, UnexpectedAlertPresentException):79 # driver.get("https://cadastre.mimt.gov.ir/")80 driver.refresh()81# get_cadastre_until_it_opens()82def get_sms():83 return subprocess.Popen(['nc', '-ln', '0.0.0.0', '38587'], stdout=subprocess.PIPE).communicate()[0].decode()84# login85def login():86 find_with_wait('//*[@id="ULogin1_txt_Username"]').send_keys(username)87 driver.find_element(By.XPATH, '//*[@id="ULogin1_txt_Pass"]').send_keys(password)88 WebDriverWait(driver, timeout=DONT_CARE_WAIT).until(89 EC.presence_of_element_located((By.XPATH, '//*[@id="ULogin1_BtnNewRequest"]')))90 # captcha91 # captcha_element = find_with_wait4('//*[@id="ctl00_ULogin1_RadCaptcha1_CaptchaImageUP"]')92 # captcha_element.screenshot(captcha_element.id+'.png')93 # captcha = get_captcha_from_user_using_tk(captcha_element.id+'.png')94 # driver.find_element(By.XPATH, '//*[@id="ctl00_ULogin1_RadCaptcha1_CaptchaTextBox"]').send_keys(captcha)95 # driver.find_element(By.XPATH, '//*[@id="ULogin1_btnLogin1"]').click()96 # sms97 # sms=get_sms()98 # print(sms)99 # find_with_wait('//*[@id="ULogin1_txtSMSCode"]').send_keys(get_sms())100 # driver.find_element(By.XPATH, '//*[@id="ULogin1_txtSMSCode"]').send_keys(sms)101 # find_with_wait('//*[@id="ULogin1_btnSMSLogin"]').click()102 # driver.find_element(By.XPATH, '//*[@id="ULogin1_btnSMSLogin"]').click()103# login()104# everything starts from here. >105driver.get("https://cadastre.mimt.gov.ir/Map/RegMap.aspx")106def select_from_menu(xpath, item):107 find_with_wait(xpath).click()108 item_list = find_with_wait(xpath[:-7] + 'DropDown"]/div/ul').find_elements(By.TAG_NAME, 'li')109 for elem in item_list:110 if elem.get_attribute('innerHTML') == item:111 # todo: advance wait112 sleep(TINY_WAIT)113 elem.click()114 # driver.execute_script("arguments[0].click();", elem)115 break116# step 1: select province117def select_province():118 select_from_menu('//*[@id="ctl00_ContentPlaceHolder1_CmbEstate_Input"]', province)119 # refresh if we stuck120 while True:121 try:122 WebDriverWait(driver, timeout=IMPORTANT_WAIT).until(123 EC.invisibility_of_element_located((By.CLASS_NAME, 'raDiv')))124 break125 except TimeoutException:126 driver.refresh()127 select_from_menu('//*[@id="ctl00_ContentPlaceHolder1_CmbEstate_Input"]', province)128 sleep(TINY_WAIT)129select_province()130# step 2: mineral matrial131# select group6132def select_mineral_material():133 select_from_menu('//*[@id="ctl00_ContentPlaceHolder1_CmbGroup_Input"]', 'گرÙÙ 6')134 # refresh if we stuck135 while True:136 try:137 WebDriverWait(driver, timeout=IMPORTANT_WAIT).until(138 EC.invisibility_of_element_located((By.CLASS_NAME, 'raDiv')))139 break140 except TimeoutException:141 driver.refresh()142 # TODO: idk this is needed or not143 select_province()144 select_from_menu('//*[@id="ctl00_ContentPlaceHolder1_CmbGroup_Input"]', 'گرÙÙ 6')145 sleep(TINY_WAIT)146select_mineral_material()147def select_metal():148 while True:149 try:150 # ... button151 find_with_wait('//*[@id="ctl00_ContentPlaceHolder1_RadButton1_input"]').click()152 break153 except ElementClickInterceptedException:154 sleep(TINY_WAIT)155 # TODO: idk this is needed or not156 # select kansar felezi (but refresh if we stuck)157 while True:158 try:159 driver.switch_to.frame(WebDriverWait(driver, timeout=IMPORTANT_WAIT).until(160 EC.visibility_of_element_located((By.TAG_NAME, "iframe"))))161 break162 except TimeoutException:163 driver.refresh()164 # TODO: idk this is needed or not165 select_province()166 select_mineral_material()167 # driver.switch_to.frame(driver.find_element(By.TAG_NAME,"iframe"))168 find_with_wait('/html/body/form/div[4]/div/div[2]/table/tbody/tr[3]/td[3]').click()169 # taeed170 find_with_wait('//*[@id="RadButton1_input"]').click()171 driver.switch_to.default_content()172 sleep(TINY_WAIT)173select_metal()174# step 3: insert points175def insert_points(points):176 for point in points:177 xd = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LngD"]')178 xm = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LngM"]')179 xs = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LngS"]')180 yd = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LatD"]')181 ym = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LatM"]')182 ys = find_with_wait3('//*[@id="ctl00_ContentPlaceHolder1_LatS"]')183 xd.clear()184 xm.clear()...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!