2016-04-14 29 views
0

SeleniumとJavaを使用してテストを行っています。どこかDOMで、私たちは、この選択を持っている:要素がドロップダウンメニューから選択されていますが、jQueryから選択されていません。

<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(); 

それは、ドロップダウンメニューから< =を選択しますが、我々はjQueryのから選択値をチェックするとき、我々がいることがわかりそれは変更されていません(以前の値があります)。

が、私はkeys.ENTER追加した場合:

action.sendKeys(element, "<=",keys.ENTER).build().perform(); 

それが動作します。なぜそれが入力せずに動作しませんでしたか?なぜそれがドロップダウンボックスから選択されたのですが、アプリケーションの他の部分の後半には以前の値が残っていましたか?

+0

質問は何ですか? – Guy

+0

なぜ入力せずに動作しませんでしたか?なぜそれがドロップダウンボックスから選択されたのですが、アプリケーションの他の部分の後半には以前の値が残っていましたか? –

答えて

0

sendKeys()をドロップダウンに使用すると、オプションが選択されず、テキストのみを入力します。セレンは、これが<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クラスを持っています。

関連する問題