【问题标题】:Appium xpath escaping apostrophesAppium xpath 转义撇号
【发布时间】:2015-08-27 00:01:12
【问题描述】:

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

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

测试挂起,因为它将“不要”中的撇号视为最终撇号以关闭 @name 值。我尝试使用 \', \', ' 来转义“不要”中的撇号

但是,这些都不起作用,测试不断失败。有谁知道如何解决这个问题?

【问题讨论】:

    标签: java selenium xpath appium apostrophe


    【解决方案1】:

    AFAIK,您无法在 xpath 中转义引号,但您可以在 Java 中转义引号。因此,请尝试使用转义双引号作为 xpath 文字字符串分隔符,例如:

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

    【讨论】:

    • 您可以在 XPath 2.0 中通过加倍来转义引号和撇号,但在 XPath 1.0 中没有办法做到这一点。
    【解决方案2】:

    使用 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"]")

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2016-03-23
      • 2018-08-26
      • 2018-09-21
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多