【问题标题】:Wait for window.onload event using Selenium Webdriver使用 Selenium Webdriver 等待 window.onload 事件
【发布时间】:2013-06-15 17:34:27
【问题描述】:

我需要一个如何等待网页完全加载的解决方案。在那之后,不再等待,我需要对网页执行操作:获取加载页面的 URL,检查 cookie,单击<a> 元素等等

在加载页面之前,我使用以下代码:

IWait<IWebDriver> wait=new WebDriverWait(drv, TimeSpan.FromSeconds(30.00));                
wait.Until(d => ((IJavaScriptExecutor)drv).ExecuteScript("return document.readyState").Equals("complete"));

但此代码不会在 100% 的情况下等待 Chrome 中的页面完全加载,并且在 Internet Explorer 中不起作用!

请您提供更好的解决方案

感谢您提前回答!

【问题讨论】:

  • 您找到解决方案了吗?
  • 可能是我参加聚会很晚了,但我发现了同样的问题,我通过使用一个小扩展解决了这个问题,它只是在窗口内创建并添加一个具有已知 id 的元素.onload 函数,由扩展作为内容脚本注入,在 webdriverwait 中,我们可以通过 id 等待该元素的存在

标签: c# window webdriver wait loaded


【解决方案1】:

document.readyState 并不总是返回页面加载完成的实际状态。看看您是否可以等待页面上的特定元素,可能是页面上最后加载的元素。

【讨论】:

  • 感谢您的评论。我知道这样的解决方案 - 对于将要加载的页面结构已知的情况。但问题是的结构
  • 将被加载的页面在之前是未知的(我模拟用户点击横幅,其中显示了许多广告产品,每个特定时间都有不同的广告)。点击横幅后,广告产品的页面加载。我需要以某种方式接收事件“window.onload”或“document.ready”,但目前我不知道如何实现。
猜你喜欢
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多