【发布时间】:2023-03-18 18:52:02
【问题描述】:
我正在为 iOS 应用程序进行测试自动化。 我在 MacOS (10.15) 上使用 Appium-desktop-client (1.15.1) 并通过 Inspector 在 Iphone 11 (13.3) 上找到具有以下属性的元素: screenshot from the attributes
目标是在 java 中使用 appium (6.1.0) 和 selenium (3.13.0) 执行以下操作:
通过elementId 找到该元素并获取变量值(在本例中为 2.6 公里)。
问题正在触及元素。在 Inspector 中,accessibility-id 和 name 始终等于该值,这意味着我无法使用它们本地化元素。
elementId 不是固定的,它在第三个数字块之后变化(这意味着我只能使用 45000000-0000-0000。)我也可以使用 "UID" 中的代码从 Inspector 复制这个 elementId属性。
为了本地化元素,我尝试了以下方法:
appiumDriver.findElementByXPath("//*[contains(@id,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@name,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@uid,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@elementId,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@RuntimeId,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@ProcessId,'45000000-0000-0000')]");
appiumDriver.findElementByXPath("//*[contains(@class,'45000000-0000-0000')]");
然而,在所有这些定位元素的尝试中,出现了org.openqa.selenium.NoSuchElementException。
我的问题现在是,我必须在xpath 中写什么才能通过 Inspector 中的 elementId 部分(或属性 UID)找到元素,然后才能读出值。
【问题讨论】:
标签: java selenium xpath appium appium-ios