【发布时间】:2016-09-20 23:37:13
【问题描述】:
操作系统:Windows 10 硒版本:2.53.0 浏览器:铬 浏览器版本:50.0.2661.102m
预期行为 - 应该在下面的代码示例中得到回调
实际行为 - 单击导航的链接元素时,不会调用任何事件处理程序。
重现步骤 - 在 Visual Studio 中创建一个 selenium 项目,导航到您喜欢的站点,在从 gotoURL 方法调用返回 webdriver 后调用此代码。
StartWebDriver 下面打开一个新的 WD 实例并导航到返回 Webdriver 的 url。我们看到在 Chrome 中打开了新的 url。接下来我们调用 HookEventFiringWebDriver... 并且永远不会收到通知。
var wd = StartWebDriver(url);
wd.HookEventFiringWebDriver(changedURL => {});
这是挂钩事件的辅助类,我尝试了不同的挂钩方法,但都不起作用。
public static void HookEventFiringWebDriver(this IWebDriver wd, Action<string> NavigatedToURL) {
var ed = new EventFiringWebDriver(wd);
ed.ElementClicked += new EventHandler<WebElementEventArgs>((o, e) => {
Debugger.Break();
});
ed.Navigated += (driver, ea) =>
{
Debugger.Break();
if (NavigatedToURL != null) NavigatedToURL(ea.Url);
};
ed.ElementClicked += (driver, ea) =>
{
Debugger.Break();
if(NavigatedToURL !=null) NavigatedToURL(ea.Element.Text);
};
ed.Navigating += (driver, ea)=>{
Debugger.Break();
if (NavigatedToURL != null) NavigatedToURL(ea.Url);
} ;
ed.ExceptionThrown += (driver, ea) =>
{
Debugger.Break();
};
} -->
【问题讨论】: