def wait_for_input(self, driver): driver.find_element_by_id('verify').clear() verify_code = driver.find_element_by_id('verify') while True: verify_code.send_keys(Login().img_for_str(driver)) if len(verify_code.get_attribute('value')) < 4: sleep(0.1) else: driver.find_element_by_id('loginBtn').click() sleep(0.5) # 出现alert关闭,否则跳出,进入下一步 alert_result = EC.alert_is_present()(driver) if alert_result: driver.switch_to.alert.accept() driver.find_element_by_id('verify').clear() driver.find_element_by_id('verifyimage').click() # 刷新验证码 continue elif alert_result is False: break
from selenium.common.exceptions import TimeoutException from selenium.webdriver import ActionChains from selenium.webdriver.support.wait import WebDriverWait from selenium import webdriver import time driver = webdriver.Chrome("D:\\chromedriver_win32 (6)\\chromedriver.exe") driver.get("http://demo.automationtesting.in/Windows.html") driver.maximize_window() time.sleep(10) ele1 = driver.find_element_by_xpath("(//a[@class='dropdown-toggle'])[1]") ele2 = driver.find_element_by_xpath("//a[text()='Alerts']") ActionChains(driver).move_to_element(ele1).move_to_element( ele2).click().perform() time.sleep(3) driver.find_element_by_xpath("//a[text()='Alert with Textbox ']").click() time.sleep(5) driver.find_element_by_xpath("//button[@onclick= 'promptbox()']").click() #driver.find_element_by_xpath('//a[@href="#OKTab"]').click() try: WebDriverWait(driver, 5).until(EC.alert_is_present(), 'Timed out waitning for alert to appear') alert = driver.switch_to.alert alert.send_keys('karthik') #alert.dismiss() print("text entered") except TimeoutException: print("no alert")