Tengo un elemento shadow-root que puedo ver en la consola de mi navegador. ex:
document.querySelector(".class").shadowRoot.querySelector(".button")En Java (Selenium Webdriver), pude usar el comando de clic de Selenium usando algo como:
JavascriptExecutor js = (JavascriptExecutor) driver; WebElement el = (WebElement) js.executeScript("return document.querySelector(".class").shadowRoot.querySelector(".button")"); el.click();En Javascript (WebdriverIO), puedo hacer clic en el mismo elemento usando ejecutar () y agregar clic () a JSpath:
browser.execute (document.querySelector(".class").shadowRoot.querySelector(".button").click();)Pero quiero saber si hay una alternativa a este clic de Javascript. ¿Es posible convertir JSpath en WebElement como lo hice en Java? Quiero utilizar el método browser.click(selector) de WebdriverIO. Lo intenté:
var obj = browser.execute (return document.querySelector(".class").shadowRoot.querySelector(".button")) var el = browser.elements (obj); //how to convert??? browser.click(el);También vi otros que usan $(selector).shadow$(selector). Pero quiero intentar usar mi JSpath original (document.querySelector...).
He renunciado a tratar de hacer que esto funcione. Leí que Javascript es un lenguaje débilmente tipificado (permite a los usuarios usar diferentes tipos de valores sin usar el encasillamiento explícito). Y que solo admite conversión explícita a cadena, booleano o número. Supongo que aquí no se puede encasillar en WebElement.