Не путайте "Unable to find element" и "Element is no longer valid" -- второе означает, что элемент был, но после этого DOM перестроился и теперь того элемента больше нет. DOM может перестроиться и не только при загрузке новой страницы. Может быть у вас динамическое меню.
Что касается конкретно выпадающих списков, лучше для работы с ними использовать специальный класс org.openqa.selenium.support.ui.Select:Select selection = new Select(driver.findElement(By.name("my_select"))); selection.selectByIndex(1); selection.selectByIndex(2);
Все-таки я продолжаю настаивать, что ,возможно, проблема именно во второй части сообщения об ошибке: WARNING: The server did not provide any stacktrace information. Если это не так, то мне интересно, почему у меня не работает код из документации на WebDriver: пример, одифицированный под IE и даже с ожиданием.
@Test public void testUntitled() throws Exception { WebDriver driver = new InternetExplorerDriver(); driver.get("http://www.google.ru"); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return d.getTitle().toLowerCase().startsWith("cheese!"); } }); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); }
Unable to find element with css selector == q (WARNING: The server did not provide any stacktrace information)
For documentation on this error, please visit: http://seleniumhq.or...ch_element.html
Build info: version: '2.4.0', revision: '13337', time: '2011-08-12 09:58:05'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_25'