Python Selenium-WebDriver等待直到显示两个标题

fig*_*r20 2 python selenium selenium-webdriver

我试图通过检查页面标题是否包含“ Page 1”来实现等待

try:
    WebDriverWait(driver, 10).until(EC.title_contains("Page 1"))
except TimeoutException as e:
    return
Run Code Online (Sandbox Code Playgroud)

我该如何修改它,以便它也检查页面标题为“页面2”,因此,如果显示这些页面标题中的任何一个,则它通过了?

And*_*son 5

您可以尝试以下代码:

try:
    WebDriverWait(driver, 10).until(lambda x: 'Page 1' in driver.title or 'Page 2' in driver.title)
except TimeoutException as e:
    pass
Run Code Online (Sandbox Code Playgroud)

  • 这个答案并不完全正确,我相信它应该是 ```WebDriverWait(driver, 10).until(lambda x: 'Page 1' in x.title or 'Page 2' in x.title)``` (注意它是“x.title”而不是“driver.title”);关键是您应该对传入条件的驱动程序引用进行操作,而不是对外部范围中的驱动程序的引用进行操作。关于 @OscarVanL 的问题 - 它可以像 ```WebDriverWait(driver, 10).until(lambda x: any(t in x.title for t in ['Page 1', 'Page 2', ‘第 3 页’]))```。 (2认同)