Appium xpath 转义撇号

Appium xpath escaping apostrophes

我的 appium 脚本中有以下代码:

    public boolean isErrorDisplayedUnrecognisedLoginCredentials() {
        return appDriver.isElementExist(By.xpath("//UIAStaticText[@name='We don't recognize this user ID or password']"));
    }

测试挂起,因为它将 "don't" 中的撇号视为结束 @name 值的最后一个撇号。我尝试使用 \', \', '

转义 "don't" 中的撇号

但是,其中 none 个正在运行并且测试一直失败。有人知道如何解决这个问题吗?

AFAIK,你不能在 xpath 中转义引号,但你可以在 Java 中转义引号。因此,尝试对 xpath 文字字符串定界符使用转义双引号,例如:

By.xpath("//UIAStaticText[@name=\"We don't recognize this user ID or password\"]")

使用 XPath 1.0(它应该适用于 XPath 2.0):

By.xpath("//UIAStaticText[@name='We don't recognize this user ID or password']")

对于 XPath 2.0,我们有两个解决方案:

  1. 通过将单引号加倍,您将能够转义撇号: By.xpath("//UIAStaticText[@name='We don''t recognize this user ID or password']")

推荐方案:

  1. 要定义 Xpath,我会使用双引号 (") 而不是撇号: By.xpath("//UIAStaticText[@name="We don't recognize this user ID or password"]")