Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人能解释资产为何失败吗?_Java_Selenium - Fatal编程技术网

Java 有人能解释资产为何失败吗?

Java 有人能解释资产为何失败吗?,java,selenium,Java,Selenium,可能重复: 我不熟悉Selenium和Java 我尝试了下面的方法来比较姓氏的字段值和我提供的值 String lastname=selenium.getValue("//*[@id='lastName']"); System.out.println(lastname); assertTrue (lastname == "xxx"); 它是不断失败的 只是在Eclipse的帮助下尝试更改最后一行(只是尝试和错误) 它工作得很好。。。为什么在第一种情况下失败?==不允许比较字符串?简短回答:

可能重复:

我不熟悉Selenium和Java

我尝试了下面的方法来比较姓氏的字段值和我提供的值

String lastname=selenium.getValue("//*[@id='lastName']");
System.out.println(lastname);
assertTrue (lastname == "xxx");
它是不断失败的

只是在Eclipse的帮助下尝试更改最后一行(只是尝试和错误)


它工作得很好。。。为什么在第一种情况下失败?==不允许比较字符串?

简短回答:
=
检查相同的对象
。equals
检查相同的值


equals
函数中的更多信息检查
lastname
的实际内容
=
运算符检查对对象的引用是否相等。

您必须使用equals()将字符串与Java进行比较,正如您所猜测的。

当您使用
=
与字符串进行比较时,您实际上是在比较指针(或真正的引用相等)。换句话说,您正在测试两个对象是否相同,而不是对象的内容。

为了比较字符串的相等性,我们使用equals()方法。java中有两种比较方法。一个是“==”运算符,另一个是“equals()”方法。“==”比较字符串对象的引用值,而equals()方法存在于java.lang.object类中。此方法比较字符串对象的内容

更多信息:这必须是Java中最常见的问题。
assertTrue("lastname.equals("xxx"));