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

344
Views
isDisplayed, isEnabled, isSelected método disponible en Java script para mostrar elementos dom en selenium

Versión de selenio: 4.0.0

¿Hay alguna manera de implementar los métodos isDisplayed, isEnabled, isSelected en Selenium usando el script Java para los elementos shadow dom?

Intenté estos pasos similares a continuación, pero aparentemente no funcionó. ¿Alguna orientación por favor?

Código:

 public void isEnabledUsingJavaScript() { JavascriptExecutor js = (JavascriptExecutor) driver; Boolean test= (Boolean) js.executeScript("document.querySelector("foo >boo").shadowRoot.querySelector("foo>boo>span").enable()"); System.out.println(test); }

Nota: Dado que es un showdow dom , no se pueden aplicar los selectores habituales de XPATH o CSS.

Error:-

 org.openqa.selenium.JavascriptException: javascript error: document.querySelector(...).shadowRoot.querySelector(...).enable is not a function

Si bien entiendo el error, no estoy seguro de qué método apropiado existe en el script de Java para usar en este tipo de escenarios.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Debe encasillar la variable devuelta a webElement , luego podrá realizar todas las operaciones que se pueden realizar en un webElement .

Para su referencia, a continuación hay un sitio web (https://www.studydrive.net) , donde aparece el Accept cookie button debajo de una shadow root , que con la ayuda del ejecutor de scripts de Java, puede obtenerse de la página y escribirse en web element .

 driver = new ChromeDriver(); driver.get("https://www.studydrive.net/") ; driver.manage().window().maximize(); JavascriptExecutor js = (JavascriptExecutor) driver; Thread.sleep(30); WebElement element = (WebElement) js.executeScript("return document.querySelector('#usercentrics-root').shadowRoot.querySelector('#uc-center-container > div.sc-jcVcSv.gBDztr > div > div.sc-giImIA.jqkmtR > div > button.sc-gsTEea.ffHglG')"); if(element.isDisplayed()) { System.out.println("element is displayed"); element.click(); System.out.println("element is clicked"); } else { System.out.println("element is not visible"); }

Producción:

 element is displayed element is clicked
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!