internet iexplorer chromedriver java internet-explorer selenium-webdriver

java - iexplorer - selenium webdriver internet explorer 8



NoSuchElementException se produce durante la implementación de InternetExplorerDriver en Selenium WebDriver (3)

Ha evitado explícitamente tener que establecer la configuración del Modo protegido de IE. Eso es lo que hace la configuración de la capacidad InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS . Cuando elimina esta configuración de capacidad y establece la configuración del Modo protegido como se documenta en la wiki del proyecto , parece que el problema se resuelve solo.

Actualmente, estoy trabajando en WebDriver para invocar el navegador IE para ejecutar las pruebas. Pero recibí una NoSuchElementException cuando intenté ejecutar el sencillo ejemplo a continuación.

Sin embargo, el código simplemente funcionó bien si usé el controlador Chrome o Firefox. Cualquier idea o pensamiento sería apreciado.

Jar: selenium-server-standalone-2.5.0.jar

Código:

import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public static void main(String[] args) throws InterruptedException { DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); WebDriver driver = new InternetExplorerDriver(ieCapabilities); driver.get("www.google.com"); driver.findElement(By.name("q")); }

Mensaje de error:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with name == q (WARNING: The server did not provide any stacktrace information) For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html Build info: version: ''2.5.0'', revision: ''13516'', time: ''2011-08-23 18:29:57'' System info: os.name: ''Windows 7'', os.arch: ''x86'', os.version: ''6.1'', java.version: ''1.6.0_25'' Driver info: driver.version: RemoteWebDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:409) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:197) at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:246) at org.openqa.selenium.By$ByName.findElement(By.java:298) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:189) at lib.WebDriver2.main(WebDriver2.java:14)


Hubo una breve entrada de preguntas frecuentes en el sitio web del proyecto (copiada alrededor de Selenium 2.9):

InternetExplorerDriver requiere que todos los dominios de seguridad estén configurados en el mismo valor (de confianza o no confiable). Si no está en posición de modificar los dominios de seguridad, puede anular la comprobación de esta manera:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.set(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); WebDriver driver = new InternetExplorerDriver(capabilities);

Como se puede decir por el nombre de la constante, esto puede introducir descamación en sus pruebas. Si todos los sitios están en el mismo dominio de protección, debería estar bien.

El mensaje paralelo C # InvalidOperationException:

Error inesperado al iniciar Internet Explorer. El Modo protegido debe configurarse en el mismo valor (habilitado o deshabilitado) para todas las zonas. (NoSuchDriver)

y el C # en lugar de ajustar la configuración de IE (la mejor estimación a partir de febrero de 2016):

var ieOptions = new OpenQA.Selenium.IE.InternetExplorerOptions { IntroduceInstabilityByIgnoringProtectedModeSettings = true }; using (var driver = new InternetExplorerDriver(ieOptions)) {

Esto fue todo parte del número 1795 en el rastreador de problemas de Selenium.


Intenta agregar implícitamente espera como abajo. También como dijo Robert, tu URL debería tener http: //

WebDriver driver = new InternetExplorerDriver(ieCapabilities); driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);