Смещение аппиума при касании

#ios #angular #selenium #protractor #appium

Вопрос:

Я тестирую угловой веб-сайт на iPhone 8 с транспортиром и Аппием, и я ясно вижу, что при нажатии на элемент иногда он щелкает под ним (всякий раз, когда элемент находится близко к нижней части страницы) или над ним (всякий раз, когда элемент находится близко к верхней части страницы).

Я даю это потому, что это окно просмотра и размер экрана разные? Если да, то как я могу настроить желаемые возможности или тесты, чтобы они учитывали это смещение? Я пытался:

  • Измените его контекст с NATIVE_APP на WEBVIEW
  • Прокрутка до элемента (сенсорные действия().прокрутка(смещение элемента))
  • Я попытался переместить мышь (даже если она мобильная) в заданные координаты, а затем щелкнуть там

Но ничего из этого не помогает, поэтому я уверен, что есть что-то, что может повлиять на размер окна просмотра и решить проблему смещения.

Вот мои текущие возможности:

 capabilities: {
    browserName: 'safari',
    platformName: 'iOS',
    platformVersion: '14.6',
    deviceType: 'iPhone',
    deviceName: 'iPhone 8',
    udid: 'XXX',
    xcodeOrgId: 'XXX',
    xcodeSigningId: 'iPhone Developer',
    automationName: 'XCUITest',
    acceptInsecureCerts: true,
    nativeWebTap: true,
  },
 

И функция, которую я использую для нажатия:

 public async tap(elementFinder: ElementFinder, doubleTap?: boolean) {
    doubleTap
      ? await browser.touchActions().doubleTap(elementFinder).perform()
      : await browser.touchActions().tap(elementFinder).perform();
}
 

Единственное, что я еще не пробовал, — это попытаться щелкнуть элемент напрямую с помощью JavaScript, но я бы предпочел не делать этого таким образом.

ПРАВКА: я забыл кое-что добавить:

Я знаю, что использование nativeWebTap в возможностях является причиной проблемы, как указано в документации, но без этого я не могу имитировать клики в своем веб-приложении, они просто не работают.