2011-04-13 86 views
0

我需要從行取值從比較硒兩個字符串

我的代碼是

String bname1 = selenium.getText("//table[@id='bank']/tbody/tr[3]/td[2]"); 
assertEquals(bname1,"HDFC"); 
if(bname1=="HDFC") { 
    System.out.println("Bank name is:"+bname1); 
} else { 
    System.out.println("Bank name not found"); 
} 
System.out.println(bname1); 

結果: 銀行沒有發現 HDFC

我的銀行名稱爲「VIJAYA 「 但是,當我比較」bname1「和」VIJAYA「,結果將是否定的? 如何將這些字符串進行比較 請幫助我...

+0

你沒有提到這是用JAVA。 – Argote 2011-04-13 04:08:13

回答

6

您無法使用==比較Java中的字符串。所做的只是測試兩個對象是否在內存中具有相同的地址/是同一個實例。使用.equals()代替,如:

if(bname1.equals("HDFC"))

...或較好的是:

if("HDFC".equals(bname1))

哪個更好,因爲如果 'bname1' 是null它不會崩潰。

+0

使用PMD來拾取這種錯誤!它是免費的,很棒。 – artbristol 2011-04-13 09:57:26

0

您的原始代碼還有其他一些問題。當你調用assertEquals()時,告訴編譯器檢查這兩個值是否相等,如果條件不成立,則停止執行代碼。因此,如果斷言失敗,那麼assertEquals()語句將不會執行後發現的打印語句。相反,你應該嘗試做如下的事情。

String bname1 = selenium.getText("//table[@id='bank']/tbody/tr[3]/td[2]"); 
assertEquals("Bank name - "+bname1+" should be HDFC",bname1,"HDFC"); 

時斷言失敗。如果你寫的語句就像在斷言功能將成爲錯誤信息的這第一個參數顯示。

0

試試這個..

 WebDriver driver = new FirefoxDriver(); 
     driver.navigate().to("Url"); 

     WebElement strvalue = driver.findElement(By.xpath(" ")); 
     String expected = "Text to compare"; 
     String actual = strvalue.getText(); 
     System.out.println(actual); 

    if(expected.equals(actual)){ 
     System.out.println("Pass"); 
    } 
     else { 
      System.out.println("Fail"); 
     }