我正在使用Java Selenium项目进行网页自动化。该网页包含许多我无法使用selenium
findElement
方法进行交互的多层影子根DOM元素。
如果您知道我可以在Selenium Java框架中实现的除以上所列之外的任何其他解决方案,请传递该解决方案。提前致谢 !。
有一个很好的插件可以与selenium项目链接一起使用。它有助于编写更好,易读和可维护的代码。使用此功能,您可以访问多级影子DOM(最多4级)。这使用简单的CSS选择器来识别元素。
WebElement findElement(String cssSelector)
:如果要从DOM获得单个元素,请使用此方法
List<WebElement> findElements(String cssSelector)
:如果要从DOM中查找所有元素,请使用此方法
WebElement findElements(WebElement parent, String cssSelector)
:如果要从父对象DOM中查找单个元素,请使用此方法
List<WebElement> findElements(WebElement parent, String cssSelector)
:如果要从父对象DOM中查找所有元素,请使用此方法
WebElement getShadowElement(WebElement parent,String selector)
:如果要从父DOM中查找单个元素,请使用此选项
List<WebElement> getAllShadowElement(WebElement parent,String selector)
:如果要查找父DOM中的所有元素,请使用此方法
boolean isVisible(WebElement element)
:如果要查找元素的可见性,请使用此方法
boolean isChecked(WebElement element)
:如果要检查是否选中了复选框,请使用此选项
boolean isDisabled(WebElement element)
:如果要检查元素是否已禁用,请使用此选项
String getAttribute(WebElement element,String attribute)
:如果要获取属性(如aria-
selected)和元素的其他自定义属性,请使用此属性。
void selectCheckbox(String label)
:使用它来选择带有标签的复选框元素。
void selectCheckbox(WebElement parentElement, String label)
:使用它来选择带有标签的复选框元素。
void selectRadio(String label)
:使用它来选择带有标签的单选元素。
void selectRadio(WebElement parentElement, String label)
:使用此选项使用标签从父DOM中选择单选元素。
void selectDropdown(String label)
:使用此选项可使用标签选择下拉列表项(如果UI上仅存在一个下拉菜单或将其加载,则使用此选项)。
void selectDropdown(WebElement parentElement, String label)
:使用此选项使用标签从父DOM中选择下拉列表项。
如何使用此插件:您将不得不依赖您的项目。
马文
<dependency>
<groupId>io.github.sukgu</groupId>
<artifactId>automation</artifactId>
<version>0.0.4</version>
<dependency>
用于位于阴影根dom元素下的html标签
<properties-page id="settingsPage">
<textarea id="textarea">
</properties-page>
您可以在框架中使用此代码来获取textarea元素Object。
import io.github.sukgu.*;
Shadow shadow = new Shadow(driver);
WebElement element = shadow.findElement("properties-page#settingsPage>textarea#textarea");
String text = element.getText();
我使用JavaSelenium项目进行网页自动化。网页包含了许多多级的影子根DOM元素,我无法使用selenium方法与它们交互。 深度css(不适用于最新的chrome浏览器) 执行人。(这真的很乏味,维护起来也很复杂) 如果你知道除了上面列出的任何其他解决方案,我可以在SeleniumJava框架中实现,请传递解决方案。提前感谢!。
基本上,我想访问一个出现在打印预览弹出窗口中的按钮,这是一个阴影dom元素。我尝试了一些我在stackoverflow周围找到的解决方案,但是它们不起作用,就像我试图构建的当前代码一样,它是: 检查元素打印
是否可以使用Selenium/Chrome WebDriver访问影子DOM中的元素? 有人成功了吗?
我可以通过以下方式访问dev中的用户名: 有没有其他方法可以通过webdriver访问ShadowDOM元素?
shadowdom结构:在上面的shadowdom结构中,我们可以在chrome中使用selenium和javascript访问各个元素,如下所示: 在Firefox中://div[@class='Style-Sconk-tabs'而不是(@隐藏)]//div/span[包含(text(),'AttrName')]/.../前驱兄弟姐妹::div/puch-icon-按钮[1]/铁图标[1] 在C
有没有可能用蟒蛇硒在阴影DOM中找到元素? 示例用例: 我用输入了这个