Как нажать кнопку, скрывающуюся внутри моего текстового поля в виде изображения в углу для appium

Как нажать кнопку, скрытую внутри моего текстового поля в виде изображения в углу для мобильного тестирования Appium

Мне нужно нажать на изображение. Если я нажму на это изображение, оно отобразит
одно всплывающее окно, и я не смогу найти локатор отдельно для изображения с помощью UIAUTOMATOR VIEWER, потому что изображение находится внутри моего текстового поля, поэтому, пожалуйста, помогите мне преодолеть это, я не могу продолжить.

Я использую инструмент просмотра UIautomator, чтобы найти локатор более уникальным?


person bakiya raj    schedule 17.11.2017    source источник


Ответы (1)


Вы можете использовать TouchAction и нажмите по координатам:

WebElement accountTextBox = driver.findElement(By.id("account_edit_text"));
Point point = accountTextBox.getLocation();
int shiftX = accountTextBox.getSize().width - 5; // you can adjust it
int shiftY = accountTextBox.getSize().height/2;
new TouchAction(driver)
  .press(point.x + shiftX, point.y + shiftY)
  .waitAction(ofSeconds(1))
  .release()
  .perform();

Также вы можете использовать Appium-desktop и попробовать automationName установить для возможности UIAutomator2 и проверить, какой XML он собирается build: он может анализировать кнопку как отдельный элемент.

person dmle    schedule 19.11.2017
comment
Привет, я пробовал с координатами, но они меняются для каждого устройства, поэтому, когда я тестировал на одном устройстве, он работает, но когда я меняю устройство, он не работает. Используемый код: TouchAction. tapCoordinates = new TouchAction (драйвер); // где драйвер - AppiumDriver tapCoordinates.tap (1324,609) .perform (); TouchAction touchAction = новый TouchAction (драйвер); touchAction.tap (1500, 700) .perform (); Можете ли вы предложить другой способ нажать на изображение флага, пожалуйста, посмотрите прикрепленное изображение в разделе вопроса. потому что я застрял в разделе входа в систему. пожалуйста, помогите мне выйти из ступеньки - person bakiya raj; 21.11.2017
comment
Вы видите разницу между вашим кодом и моим? Я делаю. Не пытайтесь касаться абстрактными координатами, а найдите элемент account_edit_text, получите его координаты (они будут отличаться от устройства к устройству, поэтому я ищу элемент, а не координаты жесткого кода). И я почти уверен, что значок флага сдвинут на 5-15 пикселей от правой границы текстового поля, поэтому просто измерьте его на нескольких устройствах и все. Попробуйте мой код, я разместил его не только для того, чтобы пожаловаться :) - person dmle; 21.11.2017
comment
Извините, сэр, ваш код работает идеально, просто скопируйте и вставьте мой код ... не могли бы вы объяснить приведенный выше код ... а также откуда этот идентификатор взят из driver.findElement (By.id (account_edit_text)); заранее спасибо. - person bakiya raj; 21.11.2017