c# - 当 Selenium ChromeDriver 的 URL 改变时触发一个事件
问题描述
我正在使用Selenium ChromeDriver
,我需要处理来自显示的浏览器头的任意 URL 更改事件(基本上,所有那些由最终用户单击页面引起的导航)。
在 .NET 默认WebBrowser
控件中,我们可以使用WebBrowser.DocumentCompleted
selenium 浏览器所没有的 .
例如:
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.
}
我怎样才能做到这一点?
解决方案
我找到了一个“讨厌”的解决方案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
但是,这并不能解决页面更改时触发事件的需求,特别是因为上述方法太多的过程编码。
推荐阅读
- python - 有效地从 python 中的二进制流中读取所有可用字节(如 C++ readsome)
- django - 在模板中应用 django 查询
- c - 防止控制台窗口在 C 中调整大小/滚动 (Window.h)
- r - 处理数字列中的非数字值
- .net - 当远程数据库中不存在时如何从本地数据库中选择数据
- xamarin.android - 为什么应用程序不等待用户的回答?
- node.js - ServiceBus Node.Js SDK 在创建队列时抛出错误
- python - 如何在 Python 中绘制回归树
- datagrip - 位于表字段的灰点的含义?
- c++ - 显示数组时出现问题。一切都放在单独的行中,但不放在单独的列中?