gpt4 book ai didi

javascript - Selenium 在下拉列表中访问多个 Shadow dom 元素?

转载 作者:行者123 更新时间:2023-12-01 16:22:09 25 4
gpt4 key购买 nike

我有一个下拉列表,我想单击其中一项并跟踪页面上的某些 Activity 。

我的 HTML 结构看起来像这样

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

......

如果你可以看到有 2 <myoption-cmp>元素,我尝试使用 findElements(By.cssSelector('myoption-cmp')。我不断收到“org.openqa.selenium.WebDriverException: javascript error: Cannot read property 'querySelectorAll' of null”。我的示例 Selenium 代码:​​

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();

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

I tried using findElement and findElements, but both gave me errors like "org.openqa.selenium.WebDriverException: javascript error: Cannot read property 'querySelector/querySelectorAll' of null".

如有任何帮助或建议,我们将不胜感激。

最佳答案

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

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

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

关于javascript - Selenium 在下拉列表中访问多个 Shadow dom 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62241338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com