2016-12-16 2 views
0

Я только что обновил проект Selenium Test Project, чтобы использовать новую версию 3.0.1 с версии 2.53.0. Теперь я использую Geckodriver v0.11.1 и сейчас тестирую исключительно на Firefox, который является версией 46.0.1.

Перед обновлением я имел код, который выглядел так:

driver.Navigate().GoToUrl(DefaultBaseURL); 
driver.ExecuteScript("$('#" + XXXX + "').val(\"" + XXXX + "\");"); 

После обновления на второй линии в настоящее время не удается, со следующей ошибкой:

WebDriverException: ReferenceError: $ is not defined

я могу сделать работу снова, если я включить «UseLegacyImplementation». Согласно сайту Selenium, это "indicating whether to use the legacy driver implementation." Итак, здесь не так много деталей ... но когда я включаю его, он работает так же, как 2.53.0.

Мое первое предположение по этой проблеме заключается в том, что это связано с тем, что касается упомянутого сообщения here. Но даже когда я ставил большое время ожидания между двумя строками, конечный результат всегда один и тот же. Кажется, что новая библиотека селена не может обнаружить, что страница уже загрузила jQuery.

Есть ли способ вызвать сценарии, зависящие от JQuery, в Selenium 3.0.1 без включения «UseLegacyImplementation»?

ответ

0

Свойство UseLegacyImplementation сообщает связям .NET, чтобы использовать устаревшую реализацию драйвера на основе браузера, разработанную и поддерживаемую самим проектом Selenium. Другими словами, установка его на true указывает привязку не для использования geckodriver. Одно из изменений от 2.x до 3.x заключается в том, что значение по умолчанию этого свойства изменилось. В 3.x он по умолчанию пытается использовать geckodriver.

Если вы используете geckodriver, вы обнаружите, что опыт лучше с более поздними версиями Firefox. То, что вы можете испытывать, может быть ошибкой с geckodriver, которая уже исправлена ​​в более поздней версии браузера. Я бы порекомендовал либо остаться с прежней реализацией проекта Selenium (UseLegacyImplementation = true), если вы хотите остаться с Firefox 46. Если вы хотите использовать geckodriver, вам следует перейти к более поздней версии Firefox.

+0

Благодарим за помощь, я обновил до Firefox 47.0.2, которая должна быть последней версией и отключена «UseLegacyImplementation», но у меня все еще есть одна и та же проблема, возможно, ее что-то экологическое :(Также у вас есть руководство или ссылка Что касается того, какая версия каждого компонента совместима с каким-либо другим компонентом, я обычно смотрю на заметки о выпуске, но это довольно продолжительный и порой неполный способ получить эту информацию? –

+0

Документация Selenium действительно позор. информация, которую она дает, является неполной или даже полностью отсутствует. – Elmue

+0

Как и многие проекты с открытым исходным кодом добровольцев, @Elmue, документация часто не является первым, о чем думают разработчики. Однако также, как и многие проекты добровольцев с открытым исходным кодом, способствующие документированию это отличный способ вступить в проект. Если вы считаете, что документ «на самом деле это позор», запросы на получение безупречно приветствуются. – JimEvans

Смежные вопросы