等待页面重定向 Selenium WebDriver (Python)

新手上路,请多包涵

我有一个页面,它使用 ajax 加载动态内容,然后在一定时间后重定向(不固定)。如何强制 Selenium Webdriver 等待页面重定向,然后立即转到另一个链接?

 import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome();
driver.get("http://www.website.com/wait.php")

原文由 7O07Y7 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 810
1 个回答

您可以创建自定义 预期条件以等待 URL 更改:

 from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)
wait.until(lambda driver: driver.current_url != "http://www.website.com/wait.php")

预期条件基本上是 可调用 的——您可以 将其包装到一个类 中,覆盖 __call__() 魔术方法,因为内置条件已实现。

原文由 alecxe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题