2016-11-21 5 views
0

Когда я запускаю IE-драйвер, он продолжает выбирать неправильный элемент в раскрывающемся списке. Похоже, что это происходит только в элементах, которые находятся в раскрывающемся списке.Selenium 3.0.0 - элемент Wong выбирается в раскрывающемся списке при использовании браузера IE 11

например, я хочу выбрать элемент 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 и второй один для списка

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

 Смежные вопросы

  • Нет связанных вопросов^_^