Selenium ChromeDriver的URL更改时触发事件

时间:2019-01-04 19:39:49

标签: c# selenium selenium-chromedriver driver

我正在使用 Selenium ChromeDriver,我需要处理来自显示的浏览器头部的任意URL更改的事件(基本上,所有这些导航都是由最终用户点击引起的在页面上。)

在.NET默认的WebBrowser控件中,我们可以使用WebBrowser.DocumentCompleted,这是硒浏览器所没有的。

例如:

ChromeDriver driver = new ChromeDriver();
driver.UrlChanged += OnUrlChanged; // the event I need

void OnUrlChanged(){
    //handle any url change here caused by the user navigating on the browser.
}

我该如何实现?

1 个答案:

答案 0 :(得分:0)

我找到了一个WebDriverWait的“讨厌”解决方案:

WebDriverWait wait = new WebDriverWait(_driver,TimeSpan.FromSeconds(6));

wait.Until(driver => driver.Url.Contains("urlpart"));

//code to be executed when the url will contain urlpart

但是,这并不能满足需要在页面更改时触发事件的需要,特别是因为上述方法过多的过程编码。