疑点1:下来也有相同名称的两个值假设,如果在下降, 那我怎么才能选择使用他们选择类别的1个值?
你可以去selectByIndex或selectByValue方法。因此,如果您知道下拉菜单中的两个选项相同,并且您希望选择第二个选项,请按索引选择选项。
Select select = new Select(driver.findElement(By.id("dropDown_id_here")));
select.selectByIndex(2);
如果2个选项的文本是相同的,值是不同的,那么你可以使用:
select.selectByValue("op2");
疑点二:假设在一个下拉存在值“紧急”。我需要在dev和production中运行 脚本。在dev url中,下拉值是 ,大写即EMERGENCY。但是在Prod env中,下降值为 ,即紧急情况。我需要以如此 的方式使脚本选择下拉值,而不管 的下拉值的情况如何。我可以通过检查env是否为dev,然后执行 这样做。但我不想这样做。我该怎么做 它使用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;
}
}
请注意,我已经写上在此编辑器飞上面的代码。它可能在语法上是错误的。请把它想出来。
你能否以更好的方式解释你的第二个疑问。目前还不清楚你想达到什么目的。 –
嗨更新了问题 – user3411418
元素的'values'是不同的?对于这两种情况,您都可以'selectByValue()'而不是'selectByVisibleText()'。 –