Я недавно обновил Selenium 2.24.1, чтобы получить работу Firefox 13. С помощью этого обновления вы должны запустить исполняемый файл, похожий на chromedriver.exe, для отправки событий в IE. Однако мне не повезло в том, что тесты запускаются с IE. Для этого, чтобы работать с хром, я, очевидно, также должен установить бит webdriver.chrome.driver, но в нем все хорошо работает и Firefox с тем же кодом.Selenium WebDriver и InternetExplorer
Вот мой исходный код:
public class GoogleTest {
@Test
public void test() throws Exception {
System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
final WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.google.com");
driver.findElement(By.name("q")).sendKeys("test");
driver.findElement(By.name("q")).submit();
driver.quit();
}
}
Однако я поздоровался с этим трассировки стека при выполнении этого теста
org.openqa.selenium.NoSuchElementException: Unable to find element with name == q (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 395 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.24.1', revision: '17205', time: '2012-06-19 15:28:49'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_01'
Driver info: driver.version: RemoteWebDriver
Session ID: e20f8370-00ed-4bf6-a4fa-a0c09c2b6d8c
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:242)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:303)
at org.openqa.selenium.By$ByName.findElement(By.java:291)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:234)
Этот точный код хорошо работает для IE8 и Windows XP SP3 32-бит. Какой IE и/или ОС вы используете? Вы _absolutely_ уверены, что используете новейший IEDriverServer.exe, а не старый? Открывает ли он страницу Google? –
Я на IE9 Windows 7. Я вытащил из раздела загрузки только вчера. Я пробовал 64-разрядную и 32-разрядную версии IEDriverServer.Страница Google открывается просто отлично, но как только я пытаюсь взаимодействовать с драйвером, это похоже на то, что информация никогда не отправляется драйверу. – Scott
Хорошо. СРОЧНО? Скажем, набрав форму на локальной странице html, содержащей один вход? Или ... ну, что-нибудь? –