为什么以下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测试的一部分?
答案 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
时看到了一些非常奇怪的行为......使用assertTrue
或assertFalse
作为断言语句是个好主意。在你的情况下,它是:
assertTrue("this test failed!", submit.getAttribute("value").equals("xxxLogin"));
这无疑对你有用。