访问一个网站,是需要加载时间的,加载时间的长短,也在于网速的快慢,为了避免一些记载时间的报错,我们需要在页面的自动化测试当中,添加一些时间等待!
WebDriverWait(browser,timeout,poll_frequency=0.5,ignored_exceptions=None)
browser:浏览器的驱动
timeout:设置最大超时时间,默认单位秒(s)
poll_frequency:检测的间隔时间,默认0.5秒
ignored_exceptions:超时后的异常信息,默认抛出NoSuchElementException异常
WebDriverWait(browser,3).until(browser.find_element_by_id("name"),message=None).send_keys("zhangsan")
解释:如果在HTML上找到id为name这个元素,就输入信息“zhangsan”
WebDriverWait(browser,3).until_not(browser.find_element_by_id("name").is_displayed(), message=None)
解释:判断id为name这个元素是否已经在html上消失,不是肉眼可见的
隐式等待是通过一定的时长等待页面上某元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常,如果在设置时间内找到某元素,会马上执行后面的操作;
# 等待3秒
browser.implicitly_wait(3)
# 等待3秒
time.sleep(3)
解释:就算在3秒内找到指定元素,也强制等待3秒