我正在使用Java Selenium项目进行网页自动化。该网页包含许多我无法使用selenium findElement方法进行交互的多层影子根DOM元素。
findElement
如果您知道我可以在Selenium Java框架中实现的除以上所列之外的任何其他解决方案,请传递该解决方案。提前致谢 !。
有一个很好的插件可以与selenium项目链接一起使用。它有助于编写更好,易读和可维护的代码。使用此功能,您可以访问多级影子DOM(最多4级)。这使用简单的CSS选择器来识别元素。
WebElement findElement(String cssSelector) :如果要从DOM获得单个元素,请使用此方法
WebElement findElement(String cssSelector)
List<WebElement> findElements(String cssSelector) :如果要从DOM中查找所有元素,请使用此方法
List<WebElement> findElements(String cssSelector)
WebElement findElements(WebElement parent, String cssSelector) :如果要从父对象DOM中查找单个元素,请使用此方法
WebElement findElements(WebElement parent, String cssSelector)
List<WebElement> findElements(WebElement parent, String cssSelector) :如果要从父对象DOM中查找所有元素,请使用此方法
List<WebElement> findElements(WebElement parent, String cssSelector)
WebElement getShadowElement(WebElement parent,String selector) :如果要从父DOM中查找单个元素,请使用此选项
WebElement getShadowElement(WebElement parent,String selector)
List<WebElement> getAllShadowElement(WebElement parent,String selector) :如果要查找父DOM中的所有元素,请使用此方法
List<WebElement> getAllShadowElement(WebElement parent,String selector)
boolean isVisible(WebElement element) :如果要查找元素的可见性,请使用此方法
boolean isVisible(WebElement element)
boolean isChecked(WebElement element) :如果要检查是否选中了复选框,请使用此选项
boolean isChecked(WebElement element)
boolean isDisabled(WebElement element) :如果要检查元素是否已禁用,请使用此选项
boolean isDisabled(WebElement element)
String getAttribute(WebElement element,String attribute) :如果要获取属性(如aria- selected)和元素的其他自定义属性,请使用此属性。
String getAttribute(WebElement element,String attribute)
void selectCheckbox(String label) :使用它来选择带有标签的复选框元素。
void selectCheckbox(String label)
void selectCheckbox(WebElement parentElement, String label) :使用它来选择带有标签的复选框元素。
void selectCheckbox(WebElement parentElement, String label)
void selectRadio(String label) :使用它来选择带有标签的单选元素。
void selectRadio(String label)
void selectRadio(WebElement parentElement, String label) :使用此选项使用标签从父DOM中选择单选元素。
void selectRadio(WebElement parentElement, String label)
void selectDropdown(String label) :使用此选项可使用标签选择下拉列表项(如果UI上仅存在一个下拉菜单或将其加载,则使用此选项)。
void selectDropdown(String label)
void selectDropdown(WebElement parentElement, String label) :使用此选项使用标签从父DOM中选择下拉列表项。
void selectDropdown(WebElement parentElement, String label)
如何使用此插件:您将不得不依赖您的项目。
马文
<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();