我有一个页面,它使用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")
有几个ExpectedConditions可与ExplicitWait一起用于处理页重定向:
使用^{} 等待新页面标题:
等待当前URL更改为任何其他具有^{} 的URL:
等待使用^{} 导航到准确的URL:
同时
^{} 可用于等待包含指定子字符串的URL或^{} -等待由传递的regex模式匹配的URL或^{} -等待包含指定子字符串的新标题
您可以为要更改的URL创建自定义Expected Condition to wait:
预期的条件基本上是一个可调用的条件-您可以在实现内置条件时wrap it into a class覆盖
__call__()
magic方法。“等待”unique(新页面)元素出现是一个很好的做法。
您可以使用模块expected_conditions。
例如,您可以在登录时等待用户徽标:
相关问题 更多 >
编程相关推荐