我有两个疑问:
假设在下拉列表中有两个具有相同名称的值,那么如何使用Select class从中选择一个值?
假设在下拉列表中有一个值" Emergency"。我需要在开发和生产中运行脚本。在设备中,下拉值以大写形式出现,即紧急情况。但是在Prod env中,下拉值正在降低,即紧急。我需要以这样的方式制作脚本,即无论下拉值如何,它都将选择下拉值。我可以通过检查env是否是dev然后执行此操作来执行此操作。但我不想这样做。如何使用Select类或任何其他相关方法来执行此操作?
答案 0 :(得分:1)
怀疑1:假设在下拉列表中有两个具有相同名称的值, 那么如何使用Select class?
从中选择一个值呢?
您可以选择selectByIndex或selectByValue方法。因此,如果您知道下拉列表中的两个选项相同,并且您想要选择第二个选项,则按索引选择该选项。
Select select = new Select(driver.findElement(By.id("dropDown_id_here")));
select.selectByIndex(2);
如果2个选项的文本相同且值不同,则可以使用:
select.selectByValue("op2");
怀疑2:假设在下拉列表中有一个值“紧急”。我需要运行 开发和生产中的脚本。在dev url中,下拉值即将到来 大写,即紧急情况。但在Prod env中,下拉值是 以低语言出现,即紧急。我需要制作这样的剧本 不管情况如何,它将选择下拉值的方式 下拉值。我可以通过检查env是否是开发来做到这一点 这样做也是如此。但我不想这样做。我能怎么做 它使用Select类或任何其他相关方法来做到这一点?
Select select = new Select(driver.findElement(By.id("dropDown_id_here")));
List<WebElement> options = select.getOptions();
for(WebElement option : options)
{
if(option.getText().equalsIgnoreCase("emergency"))
{
option.click();
break;
}
}
请注意,我已在此编辑器中动态编写上述代码。 可能在语法上是错误的。请从中获取想法。
答案 1 :(得分:0)
你有其他选择
按值选择
selectByValue(值);
按索引选择
selectByIndex(索引);