t.me/atinfo_chat Telegram группа по автоматизации тестирования

CodeceptJS + Appium + iOS вопрос по локаторам родителям и детям

codeceptjs
ios
selenium
appium
webdriver
Теги: #<Tag:0x00007f21def13d60> #<Tag:0x00007f21def127a8> #<Tag:0x00007f21def11768> #<Tag:0x00007f21def11560> #<Tag:0x00007f21def10a48>

#1

Всем привет!

Есть небольшой вопрос по выбору локатора в iOS.
Автоматизируем мобильное приложение, используем codeceptJS + selenium webdriver + appium

Есть такой кейс:
идет длинный список родителей <XCUIElementTypeCell> (у элементов нет айдишников, просто xpath)
один из таких родителей содержит детей

<XCUIElementTypeStaticText  name="Activity Log">
<XCUIElementTypeOther>
<XCUIElementTypeStaticText name="128">
<XCUIElementTypeOther>
<XCUIElementTypeButton  name="more info">

По тесту нужно до начала теста и в конце теста сграбать значение имени в элементе
<XCUIElementTypeStaticText name="128"> - в начале теста оно 127, а в конце 128
Можно ли как-то подняться на один уровень выше от элемента с именем Activity Log и потом уже выбрать третий по списку элемент с количеством?


(Сергей Слётов) #2

//XCUIElementTypeStaticText/../XCUIElementTypeStaticText[1]

..” - переход к родительскому элементу или заменить этим - “parent::*”

XCUIElementTypeStaticText[1] - второй элемент из списка.


#4

Спасибо, я попробовал такой подход, для элемента с каунтером был присвоен такой локатор:

activityCounter: 'ios=chain=**/XCUIElementTypeStaticText[$ name = "Activity Log" $]/../XCUIElementTypeStaticText[1]',

Однако при прохождении теста его не видно, ошибка:

element (ios=chain=**/XCUIElementTypeStaticText[$ name = "Activity Log" $]/../XCUIElementTypeStaticText[1]) still not visible after 15 sec

(Сергей Слётов) #5

Я немного ошибся,

В XPath нумерация идёт с 1, т.е. должно быть так
XCUIElementTypeStaticText[2] (если он в вёрстке 2-й)


#6

Проверил разные варианты с /…/ - в iOS такое не работает похоже
Однако обнаружили, что родитель позаимствовал имя ребенка и родительский локатор <XCUIElementTypeCell> находится по

activityCount: 'ios=chain=**/XCUIElementTypeCell[$ name = "Activity Log" $]',