使用selectByVisibleText选择选项时出现NoSuchElement异常

时间:2016-02-25 12:08:08

标签: java selenium

我已经为我的项目中的所有选择做了这个,除了这个选择select之外,一切正常。

我正在使用selectByVisibleText选择选项“PIT - (111310001)”,问题是,此方法不接受任何正则表达式或子字符串,以便我可以从“ PIT中删除其他字符 - (111310001)“选项。

任何帮助它为什么不工作?

编辑: -

我现在正在这样做以选择该选项。

new Select(driver.findElement(By.id(Fieldname)))
.selectByVisibleText(Value.trim());
for (WebElement option : options) {
   if(option.getText().contains(Value.trim()))
   {
    System.out.println(option);
    option.click();
    break;
   }
}

我不想使用selectByIndex或selectByValue。

1 个答案:

答案 0 :(得分:0)

selectByVisibleText正在检查完全匹配,包括字符串前后的空格(使用trim()删除)。我建议你复制html中的文字以确保。

new Select(driver.findElement(By.id(Fieldname))).selectByVisibleText(Value);

确保文字准确的另一种方法

String text = driver.findElement(By.xpath("//option[contains(text(), 'PIT')]")).getText(); // find the option by partial text and take the full text
new Select(driver.findElement(By.id(Fieldname))).selectByVisibleText(text);