Selenium прерывистый клик в эмуляторе
Так что это меня совсем запутало.
У нас есть среда тестирования с использованием Selenium, Specflow и C#. В настоящее время работает Selenium 3.13.1 (только что обновил вчера, чтобы увидеть, была ли более старая версия (3.11.2) была проблема)
Проблема (только при эмуляции мобильного устройства в Chrome):
При локальном запуске тестов все хорошо, кнопки нажимаются и тест проходит. При удаленном запуске тестов на подчиненных устройствах Jenkins это иногда срабатывает. Иногда я получаю щелчок, а иногда нет. Когда задания выполняются в соответствии с расписанием, некоторые из тестов последовательно проваливаются (это тесты, которые отлично работают при локальном запуске).
Я пытался добавить сон 5 секунд, однако это не помогло.
Одна вещь, которая сработала, - это изменение Click() на SendKeys(Keys.Enter).
Выполнение javascript для нажатия кнопки также работает хорошо, однако я не хочу переходить от нажатия по 2 причинам. 1. Это самое близкое действие, которое имитирует пользовательский ввод, и 2. Это хорошо работает локально.
Версии Chrome на подчиненных устройствах Jenkins соответствуют моей локальной версии (67.0.3396.99), а драйвер Chrome также встроен (2.40.565498).
Драйвер Chrome был обновлен вчера, так как я пробовал версии 2.38 и 2.39, но безрезультатно.
Кто-нибудь сталкивался с этой проблемой и нашел решение?
PS При выполнении тестов не в мобильной эмуляции у меня нет проблем с кликами как локально, так и на Jenkins.
2 ответа
Для тех, у кого есть эта проблема, это актуальный ответ на данный момент.
Это была не проблема с фреймворком, который мы используем, а проблема с хромом и драйвером хрома.
Ссылка на проблему / ошибку может быть найдена здесь (это известная проблема, указанная ниже).
Также, если вы проверяете документацию для мобильной эмуляции драйвера chrome, она упоминается в первой строке следующим образом
Note that Mobile Emulation is subject to this known issue.
Этот ответ не помогает решить проблему как таковую, но дает причину, по которой это происходит. "Лучший" обходной путь, который я нашел, - это использование JS для нажатия и так далее. В нашем случае мы на данный момент прекратили использовать мобильную эмуляцию, поскольку нажатие с помощью JS на самом деле не эмулирует настоящий щелчок. По мере выпуска новых версий Chrome и ChromeDriver я буду продолжать обновлять, пока не будет исправлено.
Надеюсь, вы будете тратить меньше времени, чем я ищу в поисках ответа:)
У меня такая же проблема. После того, как я разрешил всплывающие окна в моем браузере, событие click и clickAndWait работает нормально. Может быть, вы можете изменить браузер тоже.
С уважением