gpt4 book ai didi

c# - Selenium EventFiringWebDriver 导航事件

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:34 24 4
gpt4 key购买 nike

我正在使用 Selenium 网络驱动程序,我想监听浏览器中发生的事件。例如,当页面上的某些 javascript 使用 window.location = "...";

导致 url 更改时

我有一个监听器附加到我的 EventFiringWebDriverNavigated 事件。但是当浏览器的 url 更改时,这将无法触发。我由此推断,Selenium 不能以这种方式收听事件?

是否有适当的方法附加到浏览器或来自浏览器的 DOM 事件?

最佳答案

我能够使用 OpenQA.Selenium.Support.UI.WebDriverWait 对象来实现这一点。我只需要指定谓词(浏览器 url 上的比较)和时间跨度。 Selenium 每 500 毫秒检查一次结果,直到它返回 true 或时间跨度过去,在这种情况下测试失败。不是完全由事件驱动,但它具有预期的效果:

    private readonly IWebDriver _driver = new FirefoxDriver();

[Test]
public void UrlIsCorrect()
{
var w = new WebDriverWait(_driver, TimeSpan.FromSeconds(30));
w.Until(driver => driver.Url == "http://test.com");
}

关于c# - Selenium EventFiringWebDriver 导航事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223001/

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