Java - Selenium WebDriver - 当条件似乎已满足时,不执行IF / ELSE语句

时间:2018-03-02 12:14:19

标签: java if-statement selenium-webdriver

我已经通过类似的声音问题阅读了几个问题/答案,但是我找不到解决我的问题的方法,并且在过去的几个小时里一直绞尽脑汁,所以这里也是如此。

在我编写测试的网络表单上,有几个下拉列表,如果选项"不知道"从其中任何一个中选择,将显示一个复选框,需要选择或无法提交表格。

我将所选值存储为字符串,然后单击IF语句中的复选框,检查这些下拉值中的任何一个是否为"不知道" (下拉列表中的实际值记录为"不知道"):

String drpdwn_WAN = driver.findElement(By.id("idontknow4")).getAttribute("value");
String drpdwn_SFTPAuthMethod = driver.findElement(By.id("idontknow5")).getAttribute("value");
String drpdwn_SFTPCreds = driver.findElement(By.id("idontknow6")).getAttribute("value");
String drpdwn_Bandwidth = driver.findElement(By.id("idontknow7")).getAttribute("value");
String drpdwn_Data = driver.findElement(By.id("idontknow8")).getAttribute("value");

//click on the Understood check box (only appears when 'Don't know' option is selected)
if(drpdwn_WAN == "Dont know" || drpdwn_SFTPAuthMethod == "Dont know" || drpdwn_SFTPCreds == "Dont know" || drpdwn_Bandwidth == "Dont know" || drpdwn_Data == "Dont know"){

    driver.findElement(By.name("understand")).click();

}

我已经在调试模式下运行代码并确认正确存储了下拉值,但即使至少有一个下拉值是"也不知道"它不会在IF语句中运行代码,而只是忽略它。

我已经编写了我的测试,以便从下拉列表中选择的选项是随机的,因此需要大量的条件逻辑来验证页面上的其他元素,例如复选框。因此,上面只是我的代码中的IF / ELSE语句类型的一个例子,但似乎所有IF / ELSE语句中包含的代码都没有被执行,而是被忽略并传递。任何人都可以向我解释我在这里做错了什么以及为什么IF语句似乎没有被执行?

这是我第一次在这里发布,如果任何信息缺乏或不清楚,请致歉。如果解决方案相当简单,但我对Java开发世界不熟悉,也表示道歉。

提前感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

阅读stackoverflow.com/questions/513832/后,似乎我应该使用.equals()代替==进行字符串比较。在我用==

替换.equals()后,代码按预期工作
if(drpdwn_WAN.equals("Dont know") || drpdwn_SFTPAuthMethod.equals("Dont know") || drpdwn_SFTPCreds.equals("Dont know") || drpdwn_Bandwidth.equals("Dont know") || drpdwn_Data.equals("Dont know")){

        driver.findElement(By.name("understand")).click();
}