selenium - Webdriver 获取子列表并使用 xpath 过滤它
问题描述
我正在获取我的根 WebElement 的子项列表,如下所示:
WebElement listOfAddedBuildings = driver.getWebElement("//*[@id=\"right-list\"]/div/mat-list", 10);
List<WebElement> child = listOfAddedBuildings.findElements(By.xpath(".//*"));
但是现在它返回一个元素列表,包括我不需要的元素,我该如何修改它以过滤并仅返回包含“h3”标签但不包含“mat-icon”标签的元素,目前我只是这样做,但感觉不是最好的方式:
if (xPath.contains("h3") && !xPath.contains("mat-icon"))
谢谢你。
解决方案
如果您想要有h3
后代但没有mat-icon
后代的孩子,请尝试:
List<WebElement> child = listOfAddedBuildings.findElements(By.xpath("./*[.//h3 and not(.//mat-icon)]"));
推荐阅读
- c - 可调变量 Simulink 和实时研讨会 (RSIM)
- python - Checking condition in negative rolling window within GroupBy in Pandas
- algorithm - 将基于偏好的活动分配建模为稳定婚姻问题还是最低成本问题会更好吗?
- javascript - 反应原生 Firebase | 将子值转换为列表
- android - 库模块中的 lamdas 的 Android Proguard 问题
- google-chrome - 打包的 Chrome 扩展程序是否包含与使用的 Chrome 配置文件/用户的任何连接?
- php - 如何在 laravel Blade 中激活一个子菜单?
- html - Django ModelForm 输入约束
- javascript - Vue.js vuex 道具不会重新渲染
- ios - MQTT 通过多个 ViewController 发送消息