您好我使用selenium进行了以下测试,但我不得不运行它出错:
public class TestExemplo extends SeleneseTestNgHelper {
@Test public void testUntitled() throws Exception {
selenium.open("http://gmail.com");
selenium.type("Email", "edipofederle");
selenium.type("Passwd", "pass");
selenium.click("signIn");
selenium.waitForPageToLoad("30000");
assertTrue(selenium.isTextPresent("You are currently"));
}
}
java.lang.AssertionError: null
at com.thoughtworks.selenium.SeleneseTestBase.fail(SeleneseTestBase.java:372)
at com.thoughtworks.selenium.SeleneseTestBase.assertTrue(SeleneseTestBase.java:377)
at com.thoughtworks.selenium.SeleneseTestBase.assertTrue(SeleneseTestBase.java:381)
at com.example.tests.TestExemplo.testUntitled(TestExemplo.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
有人可以帮我吗?感谢..
答案 0 :(得分:1)
可能是在页面加载后,您正在检查的文本是由JavaScript加载的。这意味着在调用assertTrue()
时,文本尚未出现。您可以尝试使用waitForCondition()
,也可以只使用普通Thread.sleep()
,以便文本有可能在assertTrue()
运行之前填充。
答案 1 :(得分:0)
问题是你的Selenium驱动程序认为文本不存在,因此返回false。因此,你的断言失败了。
你能检查一下getHtmlSource方法的输出是什么样的吗?可以将其粘贴到此处,以便该文本(或缺席)的存在可以
帕