【发布时间】:2013-02-13 21:30:14
【问题描述】:
谁能让我如何让 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"));
有什么想法吗?
【问题讨论】:
-
为什么你不想使用等待?
-
你的意思是明确等待?这很耗时,我正在测试大约 10k 页面。
-
我的意思是,如果我要测试大量链接,添加修复等待可能不是一个好主意,对吧?
-
等待固定的秒数是没有用的。那是猜测。
-
鉴于页面的 javascript 可以运行任何通用代码,编写一个等待其完成的程序是不可能的。这是停机问题 (en.wikipedia.org/wiki/Halting_problem) 的一种形式。这里的任何解决方案都需要做出妥协或基于底层网页的假设。
标签: selenium load document wait