Selenium Webdriver - 等待支持


Selenium 为显式和流畅等待同步的实现提供等待支持。为此,我们必须使用类 selenium.webdriver.support.wait.WebDriverWait。

等待支持的语法如下-

w = WebDriverWait(driver, 5)
w.until(EC.presence_of_element_located((By.TAG_NAME, 'h1')))

一旦我们创建了 WebDriverWait 类的对象,我们就可以对其应用以下方法 -

  • 直到- 它用于调用以驱动程序作为参数给出的方法,直到返回值为 true。

  • Until_not - 用于调用以驱动程序作为参数给出的方法,直到返回值不为 true。

让我们等待文本 Team @ Tutorials Point,在 WebDriverWait 方法的帮助下单击页面上的链接 - Team 即可获得该文本。

网络驱动团队

单击“团队”链接后,会出现“团队@教程点”文本。

Webdriver 团队链接

代码实现

等待支持的代码实现如下 -

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome(executable_path='../drivers/chromedriver')
#implicit wait time
driver.implicitly_wait(5)
#url launch
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify element
l = driver.find_element_by_link_text('Team')
l.click()
#expected condition for explicit wait
w = WebDriverWait(driver, 5)
w.until(EC.presence_of_element_located((By.TAG_NAME, 'h1')))
s = driver.find_element_by_tag_name('h1')
#obtain text
t = s.text
print('Text is: ' + t)
#driver quit
driver.quit()

输出

Python代码

输出显示消息 - Process with exit code 0 表示上述 Python 代码执行成功。此外,文本(从文本方法获得)-Team @TutorialsPoint 也会打印在控制台中。