Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

При использовании аннотации @CacheLookup ломаются тапы по элементу и его координаты.

webdriver
java
appium
ios
testng
Теги: #<Tag:0x00007f7b6361d4c0> #<Tag:0x00007f7b6361d380> #<Tag:0x00007f7b6361d240> #<Tag:0x00007f7b6361d100> #<Tag:0x00007f7b6361cfc0>

(Алексей Песоцкий) #1

Для ускорения тестов под #ios (а в аппиуме они довольно sloowly) решил воспользоваться аннотацией CacheLookup, чтобы повторно не искать найденные элементы.
И все было хорошо, пока найденные элементы не начали использоваться по второму разу:

  • перестали отрабатывать тапы;
  • невозможно посмотреть атрибуты элементов (прим. getAttribute(“name”);
  • у кешированных элементов появились странные координаты.
@iOSFindBy(accessibility = "MenuItemTV")
@CacheLookup
private WebElement tvPageButton;
@iOSFindBy(accessibility = "LimeButton")
@CacheLookup
private WebElement limeLogo;
System.err.println(app.mainPageScreen().getLimeButton().getLocation()); // Координаты кнопки HOME = (20, 30)
System.err.println(app.mainPageScreen().getTvPageButton().getLocation()); // Координаты кнопки TV = (70, 289)
app.goTo().tv(); // клик на кнопку TV
app.goTo().home(); // клик на кнопку Назад
System.err.println(app.mainPageScreen().getTvPageButton().getLocation()); // Координаты кнопки TV = (70, 289)
System.err.println(app.header().getLimeButton().getLocation()); // Координаты кнопки HOME стали некорректными, - (0, 768)
app.goTo().tv(); // клик на элемент не производится

Примеры ошибок:

1. org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: elementId 5 could not be tapped
2. org.openqa.selenium.WebDriverException: null is not an object (evaluating 'au.getElement('0').name')

Кто-нибудь сталкивался? Any ideas?


(Hleb Halkouski) #2

А при использовании аннотации CacheLookup на виджетах поиск элементов внутри виджета ускорился?


(Алексей Песоцкий) #3

да, ускорился. Но на iOS я вообще отказался от аннотаций @CacheLookup и @iOSFindBy, так как они ломали все, что могли.
На Android же нормально отрабатывают.