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



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

以下是 appium 中的元素部分,

Appium 检查器视图

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

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());

相关内容

最新更新