Python Selenium 中的隐式等待
Python Selenium 中的隐式等待是指在页面加载过程中,程序会自动等待一段时间,直到页面加载完成后再进行后续操作。这段时间是根据程序设置的等待时间来确定的。如果在等待时间内页面加载完成,则会立即执行下一步操作。如果超过等待时间页面还没有加载完成,则会抛出异常。
隐式等待可以在创建 WebDriver 对象后设置:
from selenium import webdriver browser = webdriver.Chrome() # 设置隐式等待为 10 秒钟 browser.implicitly_wait(10)
接下来我们来看一个使用隐式等待的例子,假设我们需要在百度搜索框中输入关键字“皮蛋编程”,并点击搜索按钮,然后获取搜索结果的标题:
from selenium import webdriver # 创建 WebDriver 对象,选择 Chrome 浏览器 browser = webdriver.Chrome() # 设置隐式等待为 10 秒钟 browser.implicitly_wait(10) # 打开百度首页 browser.get("https://www.baidu.com") # 找到搜索框并输入关键字 search_box = browser.find_element_by_id("kw") search_box.send_keys("皮蛋编程") # 找到搜索按钮并点击 button = browser.find_element_by_id("su") button.click() # 等待页面加载完成 title = browser.title print(title) # 获取搜索结果的标题 results = browser.find_elements_by_css_selector(".result h3 a") for result in results: print(result.text) # 关闭浏览器 browser.quit()
在这个例子中,我们设置了 10 秒钟的隐式等待时间,如果页面在 10 秒钟内加载完成,则不会等待,直接执行下一步操作。如果超过 10 秒钟页面还没有加载完成,则会抛出异常。
注意:隐式等待时间是针对整个 WebDriver 对象的,也就是说,对所有操作都起作用。因此,在实际使用时需要根据实际情况来设置等待时间,避免等待时间过长造成不必要的等待。
相关文章