java - 当标签内可用时,无法使用文本定位元素
问题描述
具有如下的 HTML 代码。我想使用文本 SOFTWATE 定位元素。
<label _ngcontent-c5="" class="form-check-label" style="" xpath="1">
<input _ngcontent-c5="" class="form-check-input ng-untouched ng-pristine ng-valid" type="checkbox">
<!---->
<!---->
<span _ngcontent-c5="" class="checkmark">
</span>
SOFTWARE
</label>
尝试使用 xpath //div[@class='filter-item-wrapper activate']//label[contains(text(),'SOFTWARE')]
,但没有运气。
SOFTWARE
任何人都可以使用文本“ ”帮助找到该元素的位置
解决方案
这正是为什么我们总是建议人们避免使用text()
直接访问文本节点的原因。使用它来访问包含元素的字符串值几乎总是更好,string()
最大的区别之一是结果string()
不受添加或删除注释的影响。
所以使用contains(string(), 'SOFTWARE')
-- 然后可以缩写为,因为当需要字符串并且您提供节点时contains(., 'SOFTWARE')
,调用是隐式的。string()
推荐阅读
- python - 内存使用硒
- php - PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?
- android - 如何实现水平移动摇杆,Android
- pytorch - 在pytorch中初始化一个可微参数
- c++ - AIX 7.2 上的可执行 stab 创建
- c# - Visual Studio,创建 x64 dll 并在 c# 控制台应用程序中使用时出错
- javascript - 如何在 Analog Clock JavaScript 中拖动/移动时针和分针
- c# - C# 字典 vs 二维数组
- jestjs - beforeAll 和写在代码顶部有什么区别?
- r - 使用没有内置包 R 的 for 循环滚动 2 个骰子