我们如何使用selenium webdriver与嵌入的html页面进行交互

问题描述 投票:0回答:1

无法与父 html 内嵌入 html 页面中的元素进行交互

嗨,

我正在自动化的网页在父页面内有一个嵌入的 html 页面。

DOM structure

我无法与嵌入页面中存在的元素进行交互,有一种方法可以使用它们,我尝试使用 switch 来框架与 webelement 上的实例,但它不起作用。

Tried accessing via jquery

谢谢!

DOM Structure

html selenium-webdriver shadow-dom
1个回答
0
投票

你有一个问题,因为放置在影子根中的

embed
元素实际上是
iframe

因此,要在 Selenium 中使用它,您应该像通过

shadow_root
那样进入
JavaScript executor
并返回此元素。

Java 伪代码示例

WebElement embed = (WebElement) ((JavascriptExecutor) driver).executeScript("return document.querySelector(selector).shadowRoot.querySelector(...);"); // embed element
driver.switchTo().frame(embed);
driver.findElement(new By.ByCssSelector("yourSelector"));

如果您想要更具体的解决方案,请提供 html 结构作为您正在使用的代码和语言。

© www.soinside.com 2019 - 2024. All rights reserved.