无法验证网站的网址标题

时间:2017-08-18 07:26:34

标签: selenium-webdriver title

我试图验证URL的标题,下面提到的代码显示没有错误但输出错误。请参阅下面的代码:

True

为什么输出为Google。但URL的标题是{{1}}

4 个答案:

答案 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指出了一些关于StringJava文字的简单事实,如下所示:

  1. ==测试应该用于引用相等(如果它们是同一个对象)。
  2. .equals()测试应该用于值相等(如果它们在字面上相等)。
  3. 因此,将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"))