硒在下拉列表中访问多个阴影dom元素?

我有一个下拉列表,我想点击其中一个项目并跟踪页面上的一些活动。


我的 HTML 结构看起来像这样


    <slot>

    #shadowroot

    <myoption-cmp> #shadowroot <some anchor text>

    <myoption-cmp> #shadowroot <some anchor text>

    </slot>

.....


如果你能看到有2个元素,我尝试使用查找元素(By.cssSelector(“我的选择-cmp”)。我不断得到“组织.openqa.硒.Web驱动程序异常:javascript错误:无法读取空的属性'查询选择全部'”。我的样品硒代码:<myoption-cmp>


WebElement solt = parentElement.findElement(By.cssSelector("slot"));

WebElement shadowSlot = expandShadow(slot);

List<WebElement> menuCmp = shadowSlot.findElements(By.cssSelector("myoption-cmp"));

// I expect to get the list of elements nd then I'd like to access it as below.

WebElement shadow2 = expandShadow(menuCmp.get(0));

WebElement anchor = shadow2.findElement(By.cssSelector("a"));

anchor.click();  

只是想知道我是否做错了什么。


我尝试使用查找元素和查找元素,但两者都给了我错误,如“org.openqa.硒.Web驱动程序异常:javascript 错误:无法读取属性'查询选择器/查询选择器全部'的空”。


任何帮助或建议都值得赞赏。


慕的地8271018
浏览 95回答 1
1回答

有只小跳蛙

能够找到解决方案。我需要使用findElementInShadowRoot(shadowSlot, By.cssSelector('myoption-cmp'));,然后展开该元素以访问第二个阴影下的子元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript