browser.executeScript( "return arguments[0].shadowRoot" ) 不适用于 chromedriver 96 及更高版本



我广泛使用这种方法来使用Protractor框架定位shadowRoot中的元素。但在chromedriver更新到96之后,它就停止了工作。有人知道如何在量角器框架中解决这个问题吗

此解决方案适用于Chrome 97:

async function getShadowElement(shadowDomContainer: ElementFinder): Promise<any> {
const shadowRootObject = await browser.executeScript<any>('return arguments[0].shadowRoot', shadowDomContainer);
const rootKey = Object.keys(shadowRootObject)[0];
const rootId = shadowRootObject[rootKey];
return new WebElement(browser, rootId);
}

可以考虑使用queryselector:

async expandUsingQuerySelector(sRoot,sElement){
var script="document.querySelector('"+sRoot+"').shadowRoot.querySelector('"+sElement+"')";
try{
return await browser.executeScript("return "+script );
} catch( error ) {
throw error;
}  
} 

相关内容

  • 没有找到相关文章

最新更新