Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

258
Vistas
Cómo ejecutar el método executeScript a través de Java en Microsoft Edge a través de WebDriver

Estoy tratando de ejecutar el siguiente código en Microsoft Edge a través de WebDriver

 ExpectedCondition<Boolean> jsLoad = driver -> ((JavascriptExecutor) driver).executeScript("return document.readyState").toString().equals("complete"); JavascriptExecutor js = (JavascriptExecutor) getDriver(); boolean jsReady = (Boolean) js.executeScript("return document.readyState").toString().equals("complete");

Estamos obteniendo la siguiente excepción:

 Exception class:org.openqa.selenium.JavascriptException

La razón es:

 org.openqa.selenium.JavascriptException: javascript error: Function is not a constructor

Configuramos EdgeOptions como a continuación

 DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); desiredCapabilities.setBrowserName("MicrosoftEdge"); EdgeOptions edgeOptions = new EdgeOptions(); edgeOptions.setCapability("ms:inPrivate", true); edgeOptions.setCapability("prefs", edgePrefs); edgeOptions.setCapability("useAutomationExtension", false); edgeOptions.merge(desiredCapabilities); edgeOptions.setPageLoadStrategy("eager"); edgeOptions.setCapability("ms:inPrivate", true); edgeOptions.setCapability("useAutomationExtension", false); edgeOptions.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true); edgeOptions.setCapability(CapabilityType.HAS_NATIVE_EVENTS, true); driver = new EdgeDriver(edgeOptions);

Alguna sugerencia

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

ejecutarScript()

Ejecuta JavaScript en el contexto del marco o ventana seleccionado actualmente. El fragmento de script proporcionado se ejecutará como el cuerpo de una función anónima. Dentro del script, use document para referirse al documento actual. Tenga en cuenta que las variables locales no estarán disponibles una vez que el script haya terminado de ejecutarse, aunque las variables globales persistirán. Si el script tiene un valor de retorno (es decir, si el script contiene una declaración de retorno), se seguirán los siguientes pasos:

  • Para un elemento HTML, este método devuelve un WebElement
  • Para un decimal, se devuelve un Doble
  • Para un número no decimal, se devuelve un Long
  • Para un booleano, se devuelve un booleano
  • Para todos los demás casos, se devuelve una cadena.
  • Para una matriz, devuelva una Lista con cada objeto siguiendo las reglas anteriores. Admitimos listas anidadas.
  • Para un mapa, devuelve Map<String, Object> con valores siguiendo las reglas anteriores.
  • A menos que el valor sea nulo o no haya un valor de retorno, en el que se devuelve nulo

Los argumentos deben ser un número, un valor booleano, una cadena, un elemento web o una lista de cualquier combinación de los anteriores. Se lanzará una excepción si los argumentos no cumplen con estos criterios. Los argumentos estarán disponibles para JavaScript a través de la variable mágica "argumentos", como si la función se llamara a través de "Función.aplicar".


este caso de uso

Si su caso de uso es esperar a que document.readyState sea igual para complete , puede inducir WebDriverWait de la siguiente manera:

 new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda