#ios #selenium #browserstack #remotewebdriver
Вопрос:
У меня возникла проблема при запуске теста selenium в BrowserStack. Этот тест должен провалиться. Это действительно не работает на Android, но проходит на iOS, и я просто не понимаю, как это происходит.
К сожалению, мне не разрешено делиться html-кодом, но я могу поделиться своим кодом. Я называю этот метод:
public void clickElement() {
driver.findElement(Element1).click();
}
В принципе, я пытаюсь нажать на скрытую кнопку на мобильном телефоне. Так что этот тест должен провалиться.
На Android мой тест завершается неудачей, как и ожидалось. Кнопка не отображается, так что все в порядке.
Но на iOS (все устройства, которые я мог найти в браузере, как мобильные, так и планшетные), эта кнопка, пока скрытая, все равно нажимается.
Я не понимаю, как это возможно. Кто-нибудь знает, откуда взялась эта проблема? Связано ли это с iOS или браузером? Или и то и другое?
Любая помощь была бы очень признательна, спасибо
Ответ №1:
Здесь может быть 2 причины:
- Непрозрачность установлена на 0 — В этом случае элемент может быть нам не виден, но он все еще не скрыт. Только в том случае, если элементы скрыты, они перестанут получать события UITouch.
- За представлениями могут быть представления — поэтому, если вы спрятали первое, а другие представления находятся за этим первым, они все равно будут продолжать реагировать на события UITouch.
Поэтому, чтобы убедиться в том, что происходит в вашем случае, вы должны убедиться, что waitForVisibilityOf
этот метод действительно скрывает представления и для iOS.
Комментарии:
1. Привет, Маниш, я на самом деле упростил свой код выше. Этот код не работает на Android (и он должен). Но в iOS нажимается «Элемент1». Непрозрачности нет, «Элемент1» на самом деле является частью боковой панели, которая изначально скрыта. Чтобы отобразить его (и, следовательно, «Элемент1» тоже), вам сначала нужно нажать на другую кнопку.