我需要从页面的行中获取值
我的代码是
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 :(得分:7)
您无法使用==
比较Java中的字符串。所有这一切都是测试两个对象在内存中是否具有相同的地址/是同一个实例。请改用.equals()
,例如:
if(bname1.equals("HDFC"))
...或者最好:
if("HDFC".equals(bname1))
哪个更好,因为如果'bname1'是null
,它不会崩溃。
答案 1 :(得分:0)
您的原始代码也有其他一些问题。当您调用assertEquals()时,它告诉编译器检查这两个值是否相等,然后在条件不为真时停止执行代码。因此,如果断言失败,则在assertEquals()语句之后找到的print语句将不会被执行。相反,你应该尝试做类似以下的事情。
String bname1 = selenium.getText("//table[@id='bank']/tbody/tr[3]/td[2]");
assertEquals("Bank name - "+bname1+" should be HDFC",bname1,"HDFC");
如果你这样编写你的语句,那么assertEquals函数的第一个参数将成为断言失败时显示的错误信息。
答案 2 :(得分: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");
}
答案 3 :(得分:0)
您可以简单地使用以下断言:
Assert.assertEquals(ExpectedString, ActualString);
这里 ExpectedString 是预期的字符串,ActualString 是原始字符串值。