2013-05-02 61 views
0

我正在测试一个Web应用程序和我的样本测试案例有三个步骤:Selenium WebDriver - 如何知道某一行已成功执行?

  1. 输入用户名
  2. 输入密码
  3. 点击 '登录'

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

我需要生成一个报告,指定哪些步骤已通过,哪些失败。是否有一些机制可以让我知道每一行都能成功执行? Selenium是否有某种内置的活动/事件监听器?

+0

取决于你是什么意思旁路'?如果它执行的动作完成了你期望的动作?只有*你*可以知道这一点。这是您需要实施的逻辑。 – Arran 2013-05-02 16:21:53

回答

0

如果你想看看每一步都是成功的,然后我把一些断言(取决于您的单元测试框架)来验证步骤成功。

例如,要检查用户名字段实际接收到的输入,你可以立即验证用户名现场有任何的用户名在中键入的文本

一些伪代码:

IWebElement element = driver.findElement(By.id("username")); 
element.sendKeys(username); 
assertsEquals(username, element.text); 

同样,以验证点击是成功的,你可以检查并断言,预计接下来的页面上的元素存在,那么这将表明登录成功。

0

如果硒剂量不会抛出异常然后线被成功执行。

但问题是你如何定义成功?我会检查点击LoginButton后加载的网站,以确保Web应用程序的行为与您期望的相同。

1

您可使用验证或断言,以确保东西在页面上存在或不存在。验证会返回布尔值并继续运行,而断言为假将停止您的测试。

在这种特殊情况下,你可以验证您键入的用户名进入元素id为用户名。所以,你的代码看起来是这样的:

driver.findElement(By.id("username")).sendKeys(username); // this will enter username 
assertEquals(selenium.getValue("id=username"), username); // this will check that text in your username field is 'username' (also you may use Assert.IsTrue) 

据我知道有verifyTextPresent硒2 webdriver的,所以您可以使用此:

try 
{ 
assertEquals(selenium.getValue("id=username"), username); // put message into your log: success 
} 
catch (Exception) 
{ 
// put message into your log: failed 
} 

我建议验证按钮点击,但等待您登录的某些通知:例如文本“你好,{用户名}”可能会出现,或者新元素(登录前缺席)也可能出现。所以,如果这个元素 - 你肯定是登录

2

如果你想记录所有的基本步骤类似点击,浏览,寻找元素等

我建议你添加一些事件监听器。您可以使用类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

相关问题