我已经为我的项目中的所有选择做了这个,除了这个选择之外,一切正常。
我正在使用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。
答案 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);