MrP*_*Pug 3 c# testing selenium automated-tests selenium-webdriver
如何WebDriverEventListener在C#中实现?
在java导入中我没有问题:
import org.openqa.selenium.support.events.AbstractWebDriverEventListener;
Run Code Online (Sandbox Code Playgroud)
但是,WebDriverEventListener在C#中看不到,我无法实现它.
您必须将Selenium.support.dll添加到您的项目中。
定义并实例化事件触发驱动程序,如下所示:
IWebDriver driver = new FirefoxDriver();
EventFiringWebDriver firingDriver = new EventFiringWebDriver(driver);
firingDriver.ElementClicked += new EventHandler<WebElementEventArgs>(firingDriver_ElementClicked);
Run Code Online (Sandbox Code Playgroud)
对于要触发的事件:
firingDriver.findElement(By.xpath("...").click();
Run Code Online (Sandbox Code Playgroud)
事件定义为:
private void firingDriver_ElementClicked(object sender, WebDriverExceptionEventArgs e) {
// do action required to handle what happens after clicking button you have mentioned.
}
Run Code Online (Sandbox Code Playgroud)
EventFiringDriver selenium 源代码在这里,相应的测试在这里,供您参考。
在C#中侦听事件是通过使用该语言公开的标准事件机制来完成的.您可以使用事件的正确签名创建方法,并将其附加到事件.示例方法如下所示:
void MyElementClickedHandler(object sender, WebElementEventArgs e)
{
Console.WriteLine("Clicked");
}
Run Code Online (Sandbox Code Playgroud)
附加事件看起来像这样:
// Assumes driver is a properly created
// IWebDriver instance.
IWebDriver eventDriver = new EventFiringWebDriver(driver);
eventDriver.ElementClicked += new EventHandler<WebElementEventArgs>(MyElementClickedHandler);
Run Code Online (Sandbox Code Playgroud)
在事件处理程序方法内,该EventArgs参数允许您检查与事件关联的属性.在元素事件的情况下,EventArgs将具有对IWebElement触发的事件的引用.要断开事件处理程序,请使用标准C#-=运算符.
| 归档时间: |
|
| 查看次数: |
7756 次 |
| 最近记录: |