2013-12-18 19 views
0

为什么下面的assertEquals()语句:硒的assertEquals行为

WebElement submit = driver.findElement(By.name("send")); 
Assert.assertEquals("optional", "xxxLogin", submit.getAttribute("value")); 

给这个Java错误结果:

java.lang.AssertionError: expected [xxxLogin] but found [optional] 

按钮标签登录

我期待看到的东西像预期的[xxxLogin],但找到[登录](按钮标签)。 我读了第一个参数是一个可选的字符串消息,但它似乎被用作Equals测试的一部分?

回答

2

可选字符串消息应该是最后一个参数:

Assert.assertEquals("xxxLogin", submit.getAttribute("value"), "optional"); 
1

什么"optional"字符串中有预期的目的?

assertEquals("xxxLogin", submit.getAttribute("value"));应该从我看到的内容中覆盖您的需求,但如果需要,您可以将字符串放在那里作为第三个参数。

另一种也可能是:

Assert.assertTrue(
       submit.getAttribute("value").equals("xxxLogin"), 
       "Incorrect value message" //you can add the value you found to this string 
     ); 

本质上是一回事,但更容易在我看来,阅读,你要核实真实状态。

0

我已经看到一些非常奇怪的行为,使用assertEquals ...这是一个好主意,你使用assertTrueassertFalse作为你的断言陈述。在你的情况下,它会是:

assertTrue("this test failed!", submit.getAttribute("value").equals("xxxLogin")); 

这无疑会为你工作。

+0

一个很好的阅读:http://stackoverflow.com/questions/1201927/java-is-assertequalsstring-string-reliable – sircapsalot