我正在测试一个Web应用程序,而我的示例测试用例包含三个步骤:


输入用户名
输入密码
点击“登录”

driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.id("LoginButton")).click();



我需要生成一个报告,该报告指定通过了哪些步骤以及哪些失败了。我是否可以通过某种机制知道每行成功执行? Selenium是否具有某种内置的Activity / Event Listener?

最佳答案

如果要记录所有基本步骤,例如单击,导航,在查找元素上等等

我建议您添加一些事件监听器。您可以使用EventFiringWebDriver类。

一个例子:

EventFiringWebDriver events = new EventFiringWebDriver(this._driver);

events.Navigated += new EventHandler<WebDriverNavigationEventArgs>(eventAfterNavigate);


您可以将事件处理程序定义为

private void eventAfterNavigate(object sender, WebDriverNavigationEventArgs e)
{
   Log("URL visited: " + e.Driver.Url);  // Call to your favourite log method
}


您可以在Webdriver API参考中找到更多可能的事件处理程序:http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/html/AllMembers_T_OpenQA_Selenium_Support_Events_EventFiringWebDriver.htm

07-24 09:17