【问题标题】:Selenium: pageLoadTimeout not working for constantly redirecting sitesSelenium:pageLoadTimeout 不适用于不断重定向站点
【发布时间】:2015-10-30 18:18:13
【问题描述】:

我使用 Selenium 浏览多个网站并存储它们的标记。

为了加快速度,我设置了 pageLoadTimeout 来为加载时间过长的网站抛出异常:

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

但是,这似乎不适用于不断重定向的网站。以这个网站为例:https://www.pickupthevalues.com/SignUp.aspx

有没有办法让此类网站超时?我不关心内容,我只想能够从我的driver.get(url) 声明中返回。

【问题讨论】:

  • 如果你只是存储标记,那么你应该使用更快的东西,比如简单的cURL。当然,除非您实际上是在与页面上的元素进行交互。那么硒就可以了
  • 我使用 Selenium 的原因是因为我想要标记如何呈现给用户。由于 JS/AJAX,这可能与仅使用 cURL 有很大不同

标签: firefox selenium selenium-webdriver webdriver remotewebdriver


【解决方案1】:

你可以等到js返回页面完成状态。

private WebDriverWait wait;

try
{
   wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));                
   wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
}
catch(Exception ex)
{}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多