1、在脚本中为了更好的获取到页面对象,我们经常会增加sleep()延迟方法,但我们没法判断具体时间长短,所以今天介绍一种更自动化的方法
2、导入包,代码示例:from selenium.webdriver.support.ui import WebDriverWait
3、在操作id属性为dropdown控件前加上以下代码
WebDriverWait(driver,10).until(lambda the driver:the_driver.find_element_by_id('dropdown').is_displayed())
解析:代码WebDriverWait类的构造方法接受了一个WebDriver对象和一个等待最长时间(10秒)。然后调用until方法,其中重写了ExpectedCondition接口中的applay方法,让其返回一个WebElement,即加载完成的元素。默认情况下,WebDriverWait每500毫秒调用一次ExpectedCondition,直到有成功的返回,当然如果超过设定的值还没有成功的返回,将抛出异常。