Selenium 3.0.1 с ошибкой сафаридрайвера при вызове waitForElementVisible()

Сафари 10.0.1 macOS Сьерра

При запуске команды Codeception:

$I->waitForElementVisible(['css' => 'input[type=text][id=UserUsername]'], 30);

при приемочном тесте в Safari с Selenium 3.0.1 я получаю сообщение об ошибке. Скриншот, сделанный при сбое, четко отображает рассматриваемый элемент. Один и тот же тест/команда успешно выполняются как в Firefox, так и в Chrome. Ошибка:

Screenshot saved to /Applications/MAMP/htdocs/AutomatedTests/tests/_output/debug/FAILED1479307207.png
  Unable to retrieve Selenium logs : The command 'GET /session/9BC56414-8934-4315-9293-B6E99720E318/log/types' is not implemented.
  Command duration or timeout: 3 milliseconds
  Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
  System info: host: 'Cosettes-MacBook-Pro.local', ip: '10.0.1.75', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.1', java.version: '1.8.0_101'
  Driver info: org.openqa.selenium.safari.SafariDriver
  Capabilities [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=12602.2.14.0.5, cleanSession=true, platform=MAC, nativeEvents=true, locationContextEnabled=false, webStorageEnabled=true, browserName=safari, javascriptEnabled=true, cssSelectorsEnabled=true}]
  Session ID: 9BC56414-8934-4315-9293-B6E99720E318
  Screenshot and page source were saved into '/Applications/MAMP/htdocs/AutomatedTests/tests/_output/' dir
 ERROR 

Когда я запускаю тот же тест/команду в Safari/Firefox/Chrome с Selenium 2.53.1, он без проблем находит элемент.

Есть ли известная проблема с этим типом локатора, которую я не нахожу при просмотре форумов? Кто-нибудь есть предложение о том, как сделать эту работу?

Обновление 12-01-16: Теперь это больше похоже на проблему с командой waitForElementVisible(), чем с локатором. Если я изменю команду на $I->waitForElement(['css' => 'input[type=text][id=UserUsername]'], 30);, тест успешно продвинется вперед до следующей команды waitForElementVisible().


person CosetteN    schedule 16.11.2016    source источник
comment
Не совсем та же проблема, но это может помочь вам. github.com/SeleniumHQ/selenium/issues/2680   -  person cyildirim    schedule 17.11.2016
comment
Спасибо, но я так не думаю. Я прочитал эту проблему/исправление. Описанная там проблема - невозможность подключиться к SafariDriver. Я уже прошел этот момент.   -  person CosetteN    schedule 17.11.2016
comment
@CosetteN, ты уже нашел решение? Я с той же проблемой.   -  person Isengo    schedule 02.01.2017
comment
У меня нет, но приятно знать, что я не единственный, кто борется с этим.   -  person CosetteN    schedule 02.01.2017
comment
Черт. Все работает нормально (IE, Edge, Chrome, Firefox), только Safari не работает. Только открывает страницу и дальше - ничего. Я попробую с ожиданием вместо видимого сейчас элемента.   -  person Isengo    schedule 04.01.2017
comment
Может быть, проголосовать за вопрос? Может помочь привлечь к ней больше внимания. Никогда не знаешь, когда встретится нужный человек и внесет свой вклад.   -  person CosetteN    schedule 04.01.2017
comment
@isengo Я все еще не могу заставить waitForElementVisible() работать, но я могу заставить работать waitForElement().   -  person CosetteN    schedule 25.01.2017
comment
Вы пытались запустить его в Safari Technology Preview?   -  person thorn0    schedule 28.01.2017
comment
@thorn У меня нет. Моя цель — запустить приемочный тест, который максимально точно имитирует опыт моего пользователя. Я не уверен, что Safari Technology Preview поможет в этом случае. Можете ли вы объяснить лучше, что вы имеете в виду?   -  person CosetteN    schedule 30.01.2017
comment
Люди говорят, что в последней версии Safari 10 проверка видимости нарушена. Я не знаю, насколько, но вот ссылка, где я читал об этом. Таким образом, вы можете попробовать предварительный просмотр, и если ваша проблема все еще существует, мы можем сделать вывод, что это какая-то другая проблема, а не неработающие проверки видимости. Если ваша проблема исчезнет, ​​это будет не совсем опыт ваших пользователей, но в любом случае лучше, чем ничего, не так ли?   -  person thorn0    schedule 30.01.2017
comment
См. также мой ответ на этот вопрос stackoverflow.com/a/41810723/76173   -  person thorn0    schedule 30.01.2017
comment
Я вижу, где кто-то упомянул об этой конкретной проблеме, связанной с исправленной предварительной версией 16. @thorn, вы должны пойти дальше и отправить это как ответ, чтобы больше людей увидели его легче. Мне потребуется некоторое время, чтобы настроиться и посмотреть, решит ли это для меня.   -  person CosetteN    schedule 30.01.2017


Ответы (1)


Говорят, проверка видимости не работает в релизной версии Safari 10. Вы можете попробовать Safari Technology Preview, и если проблема не устранена там мы можем заключить, что это какая-то другая проблема, а не сломанные проверки видимости. Если ваша проблема исчезнет, ​​это будет не совсем опыт ваших пользователей, но в любом случае лучше, чем ничего. Также вы можете попробовать реализовать свои собственные проверки видимости в качестве обходного пути, используя какой-нибудь скрипт на стороне браузера (например, эта функция выглядит достаточно хорошо).

Чтобы запустить тесты в Safari Technology Preview, добавьте

'safari.options': { technologyPreview: true }

к возможностям.

См. также другой мой ответ на эту тему.

person thorn0    schedule 30.01.2017
comment
Поскольку у нас есть успех с более старой версией Selenium Webdriver в текущих Safari и Chrome, мы собираемся придерживаться ее до тех пор, пока Safari не начнет действовать вместе. - person CosetteN; 01.02.2017
comment
Правильно ли я понимаю, что в Safari 10 вы используете старый веб-драйвер, реализованный как расширение для Safari, и он работает нормально? Какую версию Selenium Server вы используете? - person thorn0; 01.02.2017
comment
да. Мы остановились на 2.53.1 для ежедневного тестирования, пока я пытался и пытался довести нас до 3.0.1 и заставить его работать в Firefox, Chrome и Safari. Текущая настройка оставила версию Firefox 47.0.1, но у нас больше пользователей Safari, чем Firefox, поэтому мы отдаем предпочтение Safari. - person CosetteN; 01.02.2017