【问题标题】:Appium NOT locating element when java variable is used in xpath当在 xpath 中使用 java 变量时,Appium NOT 定位元素
【发布时间】:2023-01-22 21:24:46
【问题描述】:

我正在尝试使用 xpath 动态定位元素。但是,当我在 xpath 中使用变量时,元素未定位。但是,如果我使用硬编码值,元素就会被正确定位。

我在这里错过了什么?

下面的 xpath 完美地定位了元素:

driver.findElements(By.xpath("//XCUIElementTypeStaticText[contains(@value, 'hp')]"));

而下面的 xpath 没有找到元素:

driver.findElements(By.xpath("//XCUIElementTypeStaticText[contains(@value, '" + device + "')]"));

请注意,有多个元素与上述 xpath 匹配。

我什至尝试了以下代码但没有用:

driver.FindElements(By.XPath(string.Format("//XCUIElementTypeStaticText[contains(@value, '{0}')]", device)));

任何帮助,将不胜感激。

【问题讨论】:

    标签: java selenium xpath appium


    【解决方案1】:

    尝试将空格修剪为:

    driver.findElements(By.xpath("//XCUIElementTypeStaticText[contains(@value, '"+device+"')]"));
    

    【讨论】:

      【解决方案2】:

      尝试按以下方式调试此问题:
      在调用driver.findElements方法之前定义XPath字符串,将字符串格式化为正确的值,然后将其传递给Selenium方法,如下所示:

      String xpathLocator = "//XCUIElementTypeStaticText[contains(@value, '{0}')]";
      xpathLocator = String.format(xpathLocator, device);
      driver.findElements(By.xpath(xpathLocator));
      

      【讨论】:

        猜你喜欢
        • 2014-07-27
        • 2018-03-15
        • 2020-08-16
        • 2015-08-17
        • 2017-05-07
        • 2020-04-25
        • 2019-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多