我正在使用Selenium和Java来编写测试。在DOM的某个地方我们有这个选择:
<select name="operator" id="jsonform-20577-elt-operator" required="">
<option value="<"> < </option>
<option value="<="> <= </option>
<option value="="> = </option>
<option value=">"> > </option>
<option value=">="> >= </option>
</select>
当我使用时:
WebElement element= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(
"//select[@name='operator']")));
action.sendKeys(element, "<=").build().perform();
它从下拉菜单中选择&lt; =但是当我们从jQuery检查select值时,我们发现它没有被更改(它具有前一个值)。
但如果我添加keys.ENTER
:
action.sendKeys(element, "<=",keys.ENTER).build().perform();
它有效。为什么没有进入它没有工作?为什么它是从下拉框中选择的,但后来在应用程序的其他部分仍然具有之前的值?
答案 0 :(得分:0)
在下拉列表中使用sendKeys()
不会选择该选项,只会键入文本。 Selenium有Select类来处理下拉选择
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//select[@name='operator']")));
Select select = new Select(element);
// select by text
select.selectByVisibleText("<=");
// or select by value
select.selectByValue("<=");
请注意,这仅适用于<select>
代码。