2013-12-18 17 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