首页 > 解决方案 > 当 Selenium ChromeDriver 的 URL 改变时触发一个事件

问题描述

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

在 .NET 默认WebBrowser控件中,我们可以使用WebBrowser.DocumentCompletedselenium 浏览器所没有的 .

例如:

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.
}

我怎样才能做到这一点?

标签: c#seleniumselenium-chromedriverdriver

解决方案


我找到了一个“讨厌”的解决方案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

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


推荐阅读