我试图验证URL的标题,下面提到的代码显示没有错误但输出错误。请参阅下面的代码:
True
为什么输出为Google
。但URL的标题是{{1}}
答案 0 :(得分:0)
https://stackoverflow.com/a/513839/366348
==测试引用相等性(它们是否是同一个对象)。
.equals()测试值的相等性(无论它们是否合乎逻辑 “相等”)。
所以正确的代码是if (!c.equals("Google"))
答案 1 :(得分:0)
您的代码看起来正确,但为什么它显示不正确的结果无法理解。试试这个,它对我来说是正常的。
driver.get("https://www.google.com");
String c;
c = driver.getTitle();
System.out.println(c);
if (!c.equals("Google"))
{
System.out.println("True");
}
driver.close();
}
答案 2 :(得分:0)
显然,您的代码非常适合将标题检索为Google
。但是,这discussion指出了一些关于String
中Java
文字的简单事实,如下所示:
==
测试应该用于引用相等(如果它们是同一个对象)。.equals()
测试应该用于值相等(如果它们在字面上相等)。因此,将if (c!="Google")
更改为if (!c.equals("Google"))
应该已经解决了您的目的。
由于我们正在比较字符串文字,因此我需要更精细地使用if (!c.contentEquals("Google"))
代替if (!c.equals("Google"))
。
因此,正确解决您的问题的方法是将if()
定义如下:
public class GooglePageTitle
{
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https://www.google.com");
String c;
c = driver.getTitle();
if (!c.contentEquals("Google"))
System.out.println("True");
driver.close();
}
}
答案 3 :(得分:0)
在这里。您无法使用!=运算符验证字符串数据类型。你应该坚持使用操作功能。
if (!c.contentEquals("Google"))