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

标签 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();

}

我已经在 Debug模式下运行了代码,并确认下拉值已正确存储,但即使至少有一个下拉值是“不知道”,它也不会在 IF 中运行代码声明,而是忽略它。

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

这是我第一次在这里发帖,如果有任何信息缺失或不清楚,我深表歉意。如果解决方案相当简单,我也深表歉意,但我对 Java 开发领域还是个新手。

预先感谢您提供的任何帮助!

最佳答案

阅读 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();
}

关于Java - Selenium WebDriver - 当条件似乎已满足时不执行 IF/ELSE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49068952/

相关文章:

perl - 在 perl 中使用标量作为条件

swift - UserDefaults 检查 nil 值不起作用

javascript - 我如何强制使用 selenium webdriverIO 引发错误

Soapui 内的 Selenium WebDriver,传递驱动程序实例

java - 如何区分是以客户身份登录还是以机长/司机身份登录

java - Thymeleaf 验证 : . hasErrors 未触发

java - 如何将一个列表分成两个列表?

java - 如何显示我的 Etherpad 更改?

java - if 语句无法过滤空名称

java - 无法使用 Selenium WebDriver 单击 <div> 创建的下拉菜单