Selenium assertEquals行为

时间:2013-12-18 19:48:52

标签: java selenium

为什么以下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],但找到了[Login](按钮标签)。 我读到第一个参数是一个可选的字符串消息,但似乎它被用作Equals测试的一部分?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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
        );

基本上是同样的事情,但在我看来你更容易阅读,因为你正在检查一个真正的状态。

答案 2 :(得分:0)

我在使用assertEquals时看到了一些非常奇怪的行为......使用assertTrueassertFalse作为断言语句是个好主意。在你的情况下,它是:

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

这无疑对你有用。