Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!