Appium намери елемент чрез XPath - два елемента имат един и същ xpath

Имам проблем с тестването на новини ... Трябва да получа атрибут ("име") от страница в приложението, за да мога да сравня заглавието на новините. За да намеря това заглавие, използвах:

String storyTitle = driver.findElementByXPath("//android.view.View[@index ='1']").getAttribute("name");

Но има проблем, защото над това заглавие има друг елемент, който има същия xpath и получавам неговото съдържание вместо съдържанието, което искам.

Ето UIAutomator изглед на тези елементи:

Какво получавам

Съдържание, което искам да получа

Трябва да взема това заглавие в content-desc от елемент, за да мога да го сравня със заглавието на предишния екран, което извадих от новините, но не знам как да пропусна първия елемент и да отида на втория, защото те имат всички опции едно и също exepc content-desc и не мога да го използвам. Някаква помощ?


person Boky    schedule 17.11.2014    source източник


Отговори (1)


Използвайте findElementsByXPath и вземете атрибута "име" на необходимото появяване на елемента, във вашия случай второто му появяване - get(1).

String storyTitle = driver.findElementsByXPath("//android.view.View[@index ='1']").get(1).getAttribute("name");
person Surya    schedule 18.11.2014
comment
Благодаря за отговора, но имам проблем. Когато поставя този ред, получавам грешка за този ред от код: Методът get(int) е недефиниран за типа WebElement. Ако избера да добавя cast към метод приемник, тогава получавам грешка: Методът get(String) в типа RemoteWebDriver не е приложим за аргументите (int). Същата грешка се случва, ако избера да го прехвърля в WebDriver вместо в RemoteWebDriver :( - person Boky; 18.11.2014
comment
Добре. Можете ли да публикувате актуализирания си код? Надявам се, че използвате findElementsByXPath (той ще ви предостави списъка с елементи). - person Surya; 18.11.2014
comment
Съжалявам Surya, моята грешка - проблемът беше, че използвах findElementByXPath, вместо findElementsByXpath, както ти написа :) Опитах и ​​работи като чар .. просто трябва да отрежа малко текст, добавен от приложението в края на второто заглавие, но ми реши проблема :) Благодаря отново! :) - person Boky; 18.11.2014