implicitly_wait() 方法是隐式等待,用来设置超时,一般把implicitly_wait()方法调用在加载测试地址后,等待所测试的应用程序加载
webdriverwait() 是显式等待,等待的时间是固定的
from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.ui import webdriverwait from selenium.webdriver.common.by import By from selenium import webdriver driver=webdriver.Chrome() driver.maximize_window() driver.get('https://baidu.com') driver.implicitly_wait(30) #元素是否出现可点 ,参数是locator xinwei=webdriverwait(driver,5).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'.mnav'))) xinwei.click() #验证相应位置元素的文本信息,返回值是布尔 俩参数locator text #以验证登录的错误信息为例 driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click() driver.find_element_by_id('TangrAM__PSP_10__userName').send_keys('123') driver.find_element_by_id('TangrAM__PSP_10__submit').click() bo=webdriverwait(driver,5).until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR,'#TangrAM__PSP_10__error'),U'请您输入密码')) print(bo)# 打印结果:True #元素是否可见,可见后操作 参数是locator sou=webdriverwait(driver,5).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR,'#kw'))) sou.send_keys('java') driver.quit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。