我想自动化一个脚本来验证网页中的某些内容。
登录页面在登陆应用程序页面之前重定向了几次,这些重定向偶尔会导致问题。这个问题肯定与时间有关。那么 webdriver 如何等到最终页面完全加载或稳定?
典型的解决方案是等待目标页面上的元素变为可用。不幸的是,我们使用了 100 多个唯一网址,因此没有可预测的着陆页。
那么如何实现一个 ExpectedCondition 来等待应用程序在重定向方面稳定下来呢?
主要议程是,我有一组 URL,我想通过检查其中的内容来验证所有这些 URL 是否有效。所有这些都是我的组织合作的学习内容的直接 URL,例如 Lynda、skillsoft 等。因此,当我们首先通过自动脚本启动这些 URL 时,它会询问身份验证(我的组织凭据),然后它会重定向到相应的站点。在这些重定向期间,在某些情况下会发生多次重定向,最后加载内容页面。这就是场景。我猜我的脚本失败主要是因为等待
我正在尝试在 selenium 中检查网页是否已加载完成(即检查所有控件是否已加载)。
我试过下面的代码:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until(
webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
Run Code Online (Sandbox Code Playgroud)
但即使页面正在加载上面的代码也不会等待。
我知道我可以检查特定元素以检查其是否可见/可点击等,但我正在寻找一些通用解决方案
那么,我想要做的是在特定网页上运行一个函数(这与我的正则表达式匹配).
现在我每秒都在检查它并且它有效,但我确信有一种更好的方式(因为它充满了请求的网站).
while flag:
time.sleep(1)
print(driver.current_url)
if driver.current_url == "mydesiredURL_by_Regex":
time.sleep(1)
myfunction()
Run Code Online (Sandbox Code Playgroud)
我想以某种方式这样做WebDriverWait但不确定如何.