java - 如何在格式化的 xpath 中使用撇号?

标签 java selenium-webdriver xpath string-formatting qaf

我已将定位器放在属性文件中,例如:

header.navigation.product.link = //div[contains(@class,'grid-')]//li/a[contains(.,'%s')]

当我在我的代码中使用这个定位器时-

String headerproductlink = String.format(ConfigurationManager.getBundle()
            .getString("header.navigation.category.link"), category)

category = 女式健身服

当我试图找到它无法找到的元素时。 即使我尝试过作为Women\'s Gym Clothing 但没有成功。

有人可以建议一个方法吗?

最佳答案

在 XPath 1.0 中,您可以使用单引号或双引号来分隔字符串文字,并且可以使用其他类型的引号在字符串中表示自身。你不能有一个包含单引号和双引号的字符串文字,但你可以使用 concat() 来绕过这个限制:

concat('He said: "', "I won't", '"')

如果 XPath 表达式出现在强加了自己约束的宿主语言中,情况就复杂了;在这种情况下,XPath 表达式中的任何引号都必须使用宿主语言约定进行转义,例如 Java 中的 \",XML 中的 "

关于java - 如何在格式化的 xpath 中使用撇号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51131453/

相关文章:

java - 如何使用 cssSelector 选择带有空类的链接 - Java Selenium

javascript - 在 Protractor Selenium 中运行单一测试

python - 通过 XPath 获取文本,忽略标记

node.js - 如何通过 Selenium 根据 HTML 定位文本为 My Name 的元素

java - 是否有用于值相等的 Java Validation 注释

java - 使 onItemSelected 对整个类(class)可见

java - Maven 3 中的依赖项分组

java - Selenium WebDriver java 测试中的 StaleElementReferenceException

php - XPath查询结果顺序

使用引用时 BlueJ 中的 Java checkstyle 错误