2011-06-04 92 views
0

你好,我是用硒下面的測試,但我在運行該程序的錯誤:Asse田空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

有什麼問題嗎?它看起來像斷言失敗,因爲文本不存在於該頁面? – 2011-06-04 17:11:22

+0

是的,這是看起來像,但文本存在...我登錄Gmail後.. – elf 2011-06-04 17:15:55

+0

顯然問題發生後,我已經登錄到Gmail,因爲在首頁斷言發生成功... – elf 2011-06-04 17:29:34

回答

0

的問題是,你的硒司機認爲文本不存在,因此是返回false。你的主張因此而失敗。

可以檢查getHtmlSource方法的輸出是什麼樣子?可粘貼到此處,使得文本(或不存在)的存在可能是

+0

HI Pavan,這裏的html爲getHtmlsource https://gist.github.com/1008339 – elf 2011-06-04 20:43:16

+0

在日誌eclipse中默認測試 測試運行:1,失敗:0,跳過:0 配置失敗:1,跳過:0 – elf 2011-06-04 21:17:48

+0

嗨,我注意:任何應用程序,然後我登錄需要斷言不做工精細,爲爲例,Gmail的初始頁面(登錄前)斷言工作非常好,但登錄後沒有。這對於任何應用程序......我沒有想法,爲什麼出現這種情況?謝謝 – elf 2011-06-04 23:16:59

1

這可能是因爲你檢查的頁面後,加載由JavaScript文本已經加載。這意味着在調用assertTrue()時,文本還沒有出現。你既可以嘗試waitForCondition()或只是一個普通的Thread.sleep()使得文本有機會assertTrue()運行之前填充。

+0

您好,我嘗試這樣做,但不要工作太,我是嘗試的Watir就此別過,但具有相同的probleam,登錄後,我有例如,通過xpath的文本錯誤...使用線程睡眠太.... – elf 2011-06-05 03:12:01