Python 中 Selenium 的隐式等待是什么?
在使用 Selenium 时,可能会遇到这种情况:浏览器加载页面后,网页元素会在不同的时间间隔内加载。
这种类型的状况会导致 Selenium 和页面上的网页元素之间出现同步问题。由于 DOM 中不存在该元素,因此无法识别元素。由于此原因,会抛出 ElementNotVisibleException 等异常。
Selenium 中的等待概念克服了这个问题,并在元素识别和对其执行操作之间设置了延迟。隐式等待可以被认为是测试用例中测试步骤的默认等待时间。
隐式等待是应用于页面上所有元素的全局等待。等待时间作为参数提供给方法。例如,如果等待时间为 5 秒,则它将在抛出超时异常之前等待此时间段。
隐式等待是动态等待,这意味着如果元素在第三秒可用,那么我们将继续执行测试用例的下一步,而不是等待全部五秒。
隐式等待指示 Web 驱动程序轮询特定时间段。确定此时间后,它将保留整个驱动程序会话。隐式等待的默认时间为 0。
语法
driver.implicitly_wait(2)
下面列出了隐式等待的一些缺点:
- 测试执行时间增加。
- 无法捕获应用程序中与性能相关的问题。
示例
使用隐式等待的代码实现。
from selenium import webdriver #browser exposes an executable file #Through Selenium test we will invoke the executable file which will then #invoke actual browser driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") #setting implicit wait 5 seconds driver.implicitly_wait(5) # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://tutorialspoint.com/about/about_careers.htm") #to refresh the browser driver.refresh() # identifying the link with link_text locator driver.find_element_by_link_text("Company").click() #to close the browser driver.quit()
广告