gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:47 24 4
gpt4 key购买 nike

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

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

谢谢!

最佳答案

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

在此之后您可以等待 2 秒并继续

关于ruby - Selenium Webdriver - 如何跳过单击后等待页面加载并继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com