该元素是从下拉菜单中选择的,但不是从jQ​​uery中选择的

时间:2016-04-14 18:53:25

标签: java selenium selenium-webdriver selenium-chromedriver

我正在使用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();

它有效。为什么没有进入它没有工作?为什么它是从下拉框中选择的,但后来在应用程序的其他部分仍然具有之前的值?

1 个答案:

答案 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>代码。