如何使用 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());
我正在尝试自动化使用 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());