在Python中使用Selenium的隐式等待

selenium 包用于自动化和用Python脚本进行测试。我们可以用它来访问网页上的各个元素,并对它们进行处理。

这个包里有许多方法可以根据不同的属性来检索元素。当一个页面被加载时,一些元素被动态地检索出来。

与其他元素相比,这些元素的加载速度可能不同。

在Python中使用Selenium的隐式等待

如果我们试图获取一个不可用的元素,就会产生一个ElementNotVisibleException 。这是因为该元素在源中被定义,但在DOM中还不可见。

对于这一点,我们可以使用隐式等待。通过使用selenium 的隐式等待,我们可以告诉webdriver 对象在抛出一个异常之前等待所需的时间。

如果在这段时间内没有找到需要的元素,就会抛出异常。

我们使用implicitly_wait() 函数来设置隐式等待时间。这个函数与webdriver 一起使用,用于指定隐式等待时间。

该时间以秒为单位指定。

请看下面的代码。

from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.implicitly_wait(10)
driver.get("https://www.sample.org/")
e = driver.find_element_by_id("some_form")

在上面的例子中,我们使用webdriver 对象重定向到一个网页,并尝试使用find_element_by_id() 函数来检索一个元素。这个函数将找到其id 属性与提供的值相匹配的元素。

由于这是一个动态元素,我们使用implicitly_wait() 方法指定一个隐含的时间为10秒,以确保该元素得到加载时间。