文件名称:设置元素等待-基于用户兴趣分类的协同过滤推荐算法
文件大小:7.92MB
文件格式:PDF
更新时间:2024-07-02 20:33:07
selenium
4.7 设置元素等待 如今大多数的 web应用程序使用 AJAX技术。当浏览器在加载页面时,页面内的元素可能并不是同时 被加载完成的,这给元素的定位添加的困难。如果因为在加载某个元素时延迟而造成 ElementNotVisibleException的情况出现,那么就会降低的自动化脚本的稳定性。 WebDriver提供了两种类型的等待:显式等待和隐式等待。 4.7.1 显式等待 显式等待使 WebdDriver 等待某个条件成立时继续执行,否则在达到最大时长时抛弃超时异常 (TimeoutException)。 baidu.py #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get("http://www.baidu.com") element = WebDriverWait(driver,5,0.5).until( EC.presence_of_element_located((By.ID,"kw")) ) element.send_keys('selenium') driver.quit() WebDriverWait() 它是由 webdirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存 在,如果超过设置时间检测不到则抛出异常。具体格式如下: WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) driver - WebDriver的驱动程序(Ie, Firefox,Chrome 等) timeout - 最长超时时间,默认以秒为单位