我从这里弹出 cookie:
我用 Shadow-root 选择了这样的:
现在我想单击带有 xpath 表达式的按钮,如下所示:
WebElement shadowHost = driver.findElement(By.id("usercentrics-root"));
SearchContext shadowRoot = shadowHost.getShadowRoot();
WebElement shadowContent = shadowRoot.findElement(By.cssSelector("button[data-testid='uc-accept-all-button']"));
shadowContent.click();
但是硒总是给我:
org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“css选择器”,“selector”:“button[data-testid ='uc-accept-all-button']” }
如何点击右侧按钮?
我期待CSS选择器
button[data-testid='uc-accept-all-button']
选择shadow-root内部的按钮。
寻找CSSselector“class”
sc-dcJsrY.fMlgSq
有相同的unable to locate element
错误。
还有一个问题是:我也可以在 chrome 检查中验证 Shadow-root 内部的 CSSselector 吗?在 chrome 检查中搜索 CSSselector 出现次数为零。
我在这里读到不支持 xpath,所以我切换到 CSSselector: 问题
您的问题可能需要简单的thread.sleep()或explicitWait; 这段代码对我有用:
WebElement el = driver.findElement(By.cssSelector("#usercentrics-root")); SearchContext shadowRoot = el.getShadowRoot(); Thread.sleep(2000); WebElement actual = shadowRoot.findElement(By.cssSelector(".dRvQzh .fMlgSq")); actual.click();