5. 等待页面加载完成(Waits)
Selenium Webdriver 提供两种类型的waits - 隐式和显式。显式等待会让WebDriver等待满足一定的条件以后再进一步的执行。而隐式等待让Webdriver等待一定的时间后再才是查找某元素。
在抛出TimeoutException异常之前将等待10秒或者在10秒内发现了查找的元素。WebDriverWait 默认情况下会每500毫秒调用一次ExpectedCondition直到结果成功返回。ExpectedCondition成功的返回结果是一个布尔类型的true或是不为null的返回值。
自动化的Web浏览器中一些常用的预期条件,下面列出的是每一个实现,Selenium Python binding都提供了一些方便的方法,这样你就不用去编写expected_condition类或是创建至今的工具包去实现他们。- title_is- title_contains- presence_of_element_located- visibility_of_element_located- visibility_of- presence_of_all_elements_located- text_to_be_present_in_element- text_to_be_present_in_element_value- frame_to_be_available_and_switch_to_it- invisibility_of_element_located- element_to_be_clickable - 显示并可用.- staleness_of- element_to_be_selected- element_located_to_be_selected- element_selection_state_to_be- element_located_selection_state_to_be- alert_is_present
5.2. 隐式等待
如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素。默认等待时间是0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期。