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()
方法指定十秒的隐式时间,以确保元素有时间加载。