Я работаю над автоматизацией тестирования приложения iOS. Я использую Appium-desktop-client (1.15.1) в MacOS (10.15) и нахожу элемент в Iphone 11 (13.3) через инспектора со следующими атрибутами: снимок экрана из атрибутов
Цель состоит в том, чтобы выполнить в java следующие действия с appium (6.1.0) и селеном (3.13.0):
Найти этот элемент с помощью elementId
и получите значение переменной (в данном случае 2,6 км).
Задача достигает элемента. В Инспекторе accessibility-id
и name
всегда равны значению, что означает, что я не могу локализовать элемент с ними. elementId
не является фиксированным, оно меняется после 3-го блока чисел (это означает, что я могу использовать только 45000000-0000-0000.) Я также могу воспроизвести этот elementId
из инспектора, используя код из "UID"
Атрибут.
Чтобы локализовать элемент, я попытался сделать следующее:
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
.
My вопрос теперь, что мне нужно написать в xpath
, чтобы найти элемент через часть elementId из Inspector (или атрибута UID) и затем иметь возможность считывать значение.