0

IE ドライバーを実行すると、ドロップダウン ボックスで間違った項目が選択され続けます。ドロップダウン ボックスの最後の項目でのみ発生しているようです。

たとえば、ドロップダウン ボックスで項目 9 を選択したいのですが、以下のコードを実行すると項目 8 が選択されます。これは IE ドライバーでのみ発生します。

これを実行すると、間違ったアイテムが選択されました。

Dropdownbox.get(9).click();

これを実行すると、正しいアイテムが選択されます

Dropdownbox.get(2).click();

私の環境: Selenium 3.0.0 と IE webdriver 3.0.0.0 で、POM (ページ オブジェクト モデル) も使用しています。

@FindBy(how = How.CLASS_NAME,using = "select2-result-label")
private List<WebElement> Dropdownbox;
4

1 に答える 1

0

After further investigation. I had to identify 3 elements: The dropdownbox, allOptions in the dropdownbox and inputTextbox in the dropdownbox.

I created this method to solve the issue

public static void selectItemInDropdownBox(WebElement dropdownbox,WebElement inputSearch,List<WebElement> allOptionsList,String selectedItem){

         //Wait for dropdownbox to display on page
        browser.ExplicitWait(dropdownbox);
        //Now Click on dropdownbox to show the inputTextbox and allOptions
        dropdownbox.click();

        // Must now wait for allOptions to display
        browser.ExplicitWait(inputSearch);
        // Type now the searched Item
        inputSearch.sendKeys(selectedItem);

        //Now if the search item has more than 1 returned item then we need to select the correct one
        int counter = 0;
        for ( WebElement i: allOptionsList) { 
            if ( i.getText().trim().equals( selectedItem ) ) {
                allOptionsList.get(counter).click();
                break;
           }
            counter++; 
        }
    }

Here are my Explicit Waits : First one is for WebElement and second one is for a list

public static void ExplicitWait( WebElement WebElement){
        (new WebDriverWait(driver,10)).until(ExpectedConditions.elementToBeClickable(WebElement));}

public static void ExplicitWaitList(List<WebElement> listWebElement){

    (new WebDriverWait(driver,10)).until(ExpectedConditions.visibilityOfAllElements(listWebElement));
}
于 2016-11-21T14:26:02.067 に答える