2016-11-21 6 views
0

IEドライバを実行すると、ドロップダウンボックスで間違った項目が選択され続けます。それはドロップダウンボックスの最後にある項目でのみ起こっているようです。Selenium 3.0.0 - IE 11ブラウザを使用している場合、ドロップダウンボックスでWong項目が選択されています

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

これを実行するときに間違った項目が選択されました。

Dropdownbox.get(9).click(); 

私はこれを実行すると、それは正しい項目

Dropdownbox.get(2).click(); 

私の環境を選択:セレン3.0.0とIE webdriverを3.0.0.0と I'amもPOMを使用して(ページオブジェクトモデル)

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

のためであるあなたはに関連するHTMLを持っていますあなたと共有することができますか? – Josh

+0

会社のコンテンツを共有することに敏感なので、HTMLを共有できません –

答えて

0

さらに調査した後、 私は3つの要素を特定しなければなりません:ドロップダウンボックス、ドロップダウンボックスのallOptions、ドロップダウンボックスのinputTextbox。

私はここで

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++; 
     } 
    } 

問題を解決するために、このメソッドを作成しましたが、私の明示的なウェイツ、次のとおりです。まず一つはWebElement用で2つ目のリスト

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)); 
} 
関連する問題