java - text() 不是有效的 XPath 表达式
问题描述
<div ng-class="{'col-xs-4':sale.Sale.WarrantyExtensionFunctionAvailable ,'col-xs-6':!sale.Sale.WarrantyExtensionFunctionAvailable }" class="ng-binding col-xs-4">
<b>Reference: </b>ABCD<br>
<b>Serial number:</b> 12345678<br>
</div>
我想找到文本 ABCD,我试过这个
driver.findElements(By.xpath("//div[@ng-class='{'col-xs-4':sale.Sale.WarrantyExtensionFunctionAvailable ,'col-xs-6':!sale.Sale.WarrantyExtensionFunctionAvailable }']/text()")).get(2);
但我收到以下错误:
org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //div[@ng-class='{'col-xs-4':sale.Sale.WarrantyExtensionFunctionAvailable ,'col-xs-6':!sale.Sale.WarrantyExtensionFunctionAvailable }']/text() because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//div[@ng-class='{'col-xs-4':sale.Sale.WarrantyExtensionFunctionAvailable ,'col-xs-6':!sale.Sale.WarrantyExtensionFunctionAvailable }']/text()' is not a valid XPath expression.
有没有找到这种类型的文本的最佳实践?
解决方案
我认为这应该在这里工作
driver.findElement(By.xpath("(//div[contains(@ng-class,'sale.Sale.WarrantyExtensionFunctionAvailable')]/text())[1]")).getText();
推荐阅读
- c++ - 哪些运算符隐含地定义/生成 C++ 中的其他运算符?
- firebase - Firestore 安全规则 - 嵌套集合
- python - 使用 re.search 在数据框中搜索值
- javascript - Google idToken 负载没有名字、头像或姓氏。Angular 和 Firebase
- r - 通过 data.table 从另一个表更新因子水平
- r - 如何使用 R 将结束行字符从 Windows 转换为 Unix
- mysql - 想要在 MySQL 5.6 中生成 row_number 变量 - 但不使用 @variables
- html - 如果太长,thead 不会在每一页上重复
- vue.js - vuetify 电子重置表单
- excel - 运行时错误“53” - 宏无法找到带有土耳其语特殊符号的文档