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"));

有人想过吗?


繁花不似锦
浏览 292回答 3
3回答

GCT1015

试试这段代码:&nbsp; driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);上面的代码将等待最多10秒的页面加载。如果页面加载超过它将抛出的时间TimeoutException。你抓住了例外,满足了你的需求。我不确定是否在抛出异常后退出页面加载。我还没有尝试这个代码。想要尝试一下。这是一个隐含的等待。如果你设置了一次它将具有范围,直到Web驱动程序实例销毁。有关更多信息。

qq_花开花谢_0

这是您给出的示例的可用Java版本:void waitForLoad(WebDriver driver) {&nbsp; &nbsp; new WebDriverWait(driver, 30).until((ExpectedCondition<Boolean>) wd ->&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete"));}示例对于c#:public static void WaitForLoad(IWebDriver driver, int timeoutSec = 15){&nbsp; IJavaScriptExecutor js = (IJavaScriptExecutor)driver;&nbsp; WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec));&nbsp; wait.Until(wd => js.ExecuteScript("return document.readyState").ToString() == "complete");}
打开App,查看更多内容
随时随地看视频慕课网APP