一尘不染

selenium等到文件准备好

selenium

谁能让我让selenium等到页面完全加载后?我想要一些通用的东西,我知道我可以配置WebDriverWait并调用“
find”之类的东西让它等待,但我不会走那么远。我只需要测试页面是否成功加载,然后转到下一页进行测试即可。

我在.net中找到了某些内容,但无法在Java中运行。

IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

有任何想法吗?


阅读 281

收藏
2020-06-26

共1个答案

一尘不染

试试这个代码:

  driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

上面的代码最多等待10秒钟才能加载页面。如果页面加载时间超出限制,它将抛出TimeoutException。您捕获异常并满足您的需求。我不确定抛出异常后是否退出页面加载。我还没有尝试此代码。想要尝试一下。

这是一个隐式等待。如果设置一次,它将具有作用域,直到Web Driver实例销毁为止。

有关更多信息,请参见文档WebDriver.Timeouts

2020-06-26