В моем приложении есть два тега <select>
.Первый изменяет параметры внутри второго и включает его в событии onchange.
Когда я использую объект Select, предоставленный Selenium2, это событие не запускается при работе в IE8 (прекрасно работает в FF и когда я делаю это вручную).
Select select = new Select(getElementByName(name));
element.selectByValue(value);
Первый<select>
изменяется как ожидалось.Однако второй <select>
остается пустым и отключенным.Я попробовал это как обходной путь:
if(ie) {
WebElement select = getElementByName(name);
WebElement option = select.findElement(By.cssSelector("[value='"+value+"']"));
List<WebElement> options = select.findElements(By.cssSelector("option"));
//select the first element
options.get(0).click();
//make sure the select is focused
select.click(); //open
select.click(); //close
Keyboard keyboard = getWebDriver().getKeyboard();
for(int i = 0; i < options.size() && option.getAttribute("selected") == null; i++) {
keyboard.pressKey(Keys.DOWN);
//note: if i do a Thread.sleep(100); here, it works more consistently, but still not 100%
}
} else {
// Do the above snippet
}
, но теперь я получаю противоречивые результаты.Нужный <option>
всегда выбирается, в то время как событие запускается только иногда.
Очевидно, что лучшим вариантом является выбор Select для работы в IE8.Кто-нибудь еще видел эту проблему?Похоже, ошибка в Selenium2.Есть ли известный обходной путь для этого?