如何使用 Selenium 和 Java 在 iOS 应用程序中使用 data-test-id

How to work with data-test-id in iOS app using Selenium and Java

我正在尝试自动化使用 Pega PRPC 构建的 iOS 应用程序。但我无法找到一些元素。

下面是appium中的元素部分,

Appium inspector view

下面是我用来引用该元素的代码,

private IOSDriver<MobileElement> driver;
URL url = new URL(configFileReader.getAppiumUrl());
driver = new IOSDriver<MobileElement>(url, cap);


MobileElement enterValueToHeadOnWeir = driver.findElementByClassName("XCUIElementTypeTextField");
enterValueToHeadOnWeir.sendKeys(configFileReader.getHeadOnWeirValue());

通过上面的代码,我能够获取元素。但是在同一个屏幕中,我在具有相同类名的文本字段上有相同的种类,并且它没有任何唯一标识符。对于第一个元素,这可以工作,但我无法在其他文本字段上工作。

因为这是一个 PEGA 应用程序,我有这些元素的 "data-test-id" 属性,我可以将它与 Appium 一起使用吗?

如果您有多个具有相同特征的元素,您可以使用 .findelementsBy*:

将它们收集到一个列表中
List<MobileElement> enterValueToHeadOnWeir = driver.findElementsByClassName("XCUIElementTypeTextField");

//example to second element
enterValueToHeadOnWeir.get(1).sendKeys(configFileReader.getHeadOnWeirValue());

这是元素的索引:.get(1)

但是如果你想仍然使用 "data-test-id" 你的意思是,你可以通过 xpath:

来实现
MobileElement enterValueToHeadOnWeir = driver.findElementByXPath("//*[@elementId='enter_value_here']");
enterValueToHeadOnWeir.sendKeys(configFileReader.getHeadOnWeirValue());