Selenium Webdriver - 单击后如何跳过等待页面加载并继续

Tyl*_*erM 5 ruby selenium rspec webdriver

我使用单击按钮的 webdriver 进行了 rspec 测试......单击按钮后,页面永远不会完全加载(这是预期的和正确的行为)。单击按钮后,我想等待 2 秒钟,然后导航到不同的 URL...尽管该页面尚未加载。我不想因为页面没有加载而抛出错误,我只想忽略它,然后继续,好像一切都很好。页面不应该加载,这是预期和正确的行为。

我怎样才能避免等到超时,其次,我怎样才能不抛出导致测试失败的错误。

谢谢!

Ser*_*rov 1

WebDriver 有一个阻塞 API,它将始终等待页面加载。相反,您可以通过 JavaScript 按下按钮,即触发其 onclick 事件。我对 Ruby 不熟悉,但在 Java 中它是:

WebDriver driver = ....; // Init WebDriver
WebElement button = ....; // Find your element for clicking
String script = "if (document.createEventObject){"+
      "return arguments[0].fireEvent('onclick');"+
  "}else{"+
    "var evt = arguments[0].ownerDocument.createEvent('MouseEvents');"+
    "evt.initMouseEvent('click',true,true,"+
    "element.ownerDocument.defaultView,1,0,0,0,0,false,"+
    "false,false,false,1,null);"+
  "return !element.dispatchEvent(evt);}" ;
((JavascriptExecutor)driver).executeScript(script, button);
Run Code Online (Sandbox Code Playgroud)

之后您可以等待 2 秒然后继续