#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 в возможностях является причиной проблемы, как указано в документации, но без этого я не могу имитировать клики в своем веб-приложении, они просто не работают.