Javascript(WebdriverIO)-将影子元素(JSpath)投射到WebElement中



我有一个影子根元素,可以在浏览器控制台中查看。例如:

document.querySelector(".class").shadowRoot.querySelector(".button")

在Java(SeleniumWebdriver(中,我能够使用Seleniumclick命令,比如:

JavascriptExecutor js = (JavascriptExecutor) driver; 
WebElement el = (WebElement) js.executeScript("return document.querySelector(".class").shadowRoot.querySelector(".button")");
el.click();

在Javascript(WebdriverIO(中,我可以使用execute((并将click((附加到JSpath来单击相同的元素:

browser.execute (document.querySelector(".class").shadowRoot.querySelector(".button").click();)

但我想知道是否有一个替代这个Javascript点击。是否可以像我在Java中那样将JSpath转换为WebElement?我想利用WebdriverIO的浏览器点击(选择器(方法。我试过了:

var obj = browser.execute (return document.querySelector(".class").shadowRoot.querySelector(".button"))
var el = browser.elements (obj); //how to convert???
browser.click(el);

我也看到其他人使用$(selector(.shadow$(选择器(。但我想尝试使用我原来的JSpath(document.querySelector…(。

我已经放弃了尝试让它发挥作用。我读到Javascript是一种弱类型语言(它允许用户在不使用显式类型转换的情况下使用不同类型的值(。它只支持显式转换为字符串、布尔值或数字。我猜这里无法对WebElement进行类型转换。

最新更新