为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地8271018 2022-09-23 09:41:38

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


我的 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 错误:无法读取属性'查询选择器/查询选择器全部'的空”。


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


查看完整描述

1 回答

?
有只小跳蛙

TA贡献1497条经验 获得超7个赞

能够找到解决方案。我需要使用

findElementInShadowRoot(shadowSlot, By.cssSelector('myoption-cmp'));

,然后展开该元素以访问第二个阴影下的子元素。


查看完整回答
反对 回复 2022-09-23
  • 1 回答
  • 0 关注
  • 8 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信