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

问题描述 投票:1回答:1

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

在我正在编写测试的Web表单上,有几个下拉列表,如果从其中任何一个中选择“不知道”选项,将显示一个复选框,需要选择或表单不能提交。

我将所选值存储为字符串,然后单击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开发世界的新手,也会道歉。

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

java if-statement selenium-webdriver
1个回答
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();
}
© www.soinside.com 2019 - 2024. All rights reserved.