Я новый пользователь Nightwatch и пытаюсь конвертировать большое количество тестов, чтобы использовать последнюю версию Nightwatch 1.1.12. Мои требования должны использовать следующие настройки:
Nightwatch 1.12.1
Firefox 60.8.0esr and Chrome 74
Gecko driver 1.7.1 (equates to gecko driver 0.17.1)
see https://github.com/vladikoff/node-geckodriver#readme
У меня есть пример установки и тесты, клонированные с репозитория на сайте Nightwatch, https://github.com/nightwatchjs/nightwatch-website-tests,
в моем репо:
https://github.com/kblodget/nightwatch-website-tests-config
Я изменил тест homepage-test.js, чтобы перейти к кнопке GitHub, щелкните ее, а затем убедитесь, что страница GitHub открыта.
Этот тест работает в chrome, но не проходит, когда я запускаю тот же тест, используя FireFox и требуемый драйвер геккона.
Ошибка Firefox
TimeoutError: An error occurred while running .moveToElement() command on <Section [name=indexContainer],Section [name=download],Element [name=@gitHubButton]>:
{"status":-1,"value":{"error":"unknown command","message":"POST /session/28e06a8d-7e6c-436a-81b7-149230ff226b/moveto did not match a known command","stacktrace":"stack backtrace:\n 0: 0x57af6d - backtrace::backtrace::trace::h59229d13f6a8837d\n 1: 0x57b0c2 - backtrace::capture::Backtrace::new::h23089c033eded8f0\n 2: 0x4472fc - webdriver::error::WebDriverError::new::h0b226f62ff19e120\n 3: 0x439986 - <webdriver::server::HttpHandler<U> as hyper::server::Handler>::handle::h8a591087754286a9\n 4: 0x42d1cf - hyper::server::listener::spawn_with::{{closure}}::h82d502303a553f20\n 5: 0x4092d7 - std::panicking::try::do_call::h89ac8aec5c3b6b89\n 6: 0x5de23a - panic_unwind::__rust_maybe_catch_panic\n at /checkout/src/libpanic_unwind/lib.rs:98\n 7: 0x41bd6e - <F as alloc::boxed::FnBox<A>>::call_box::h2822c178036f43e7\n 8: 0x5d68d4 - alloc::boxed::{{impl}}::call_once<(),()>\n at /checkout/src/liballoc/boxed.rs:650\n - std::sys_common::thread::start_thread\n at /checkout/src/libstd/sys_common/thread.rs:21\n - std::sys::imp::thread::{{impl}}::new::thread_start\n at /checkout/src/libstd/sys/unix/thread.rs:84"},"errorStatus":"","error":"POST /session/28e06a8d-7e6c-436a-81b7-149230ff226b/moveto did not match a known command","httpStatusCode":404}
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
Я исследовал это в прошлых выпусках и считаю, что проблема связана с этим
https://github.com/nightwatchjs/nightwatch/issues/1664
Из этого источника драйвер gecko не поддерживает команду команды moveTo и был заменен реализацией API действий.
Интересно, что у меня возникает та же ошибка при обновлении файла nightwatch.conf.js для использования Firefox версии 60 и драйвера gecko до 1.16.2 (драйвер gecko v0.24.0)
Так как мне запустить этот тест в браузере Firefox 60? Если мне нужно создать собственную команду для использования действий API, как это сделать?
Обновление 1:
Я понимаю, что это проблема с geckodriver, который не полностью реализует стандарт WebDriver или не полностью совместим с Selenium, но мне нужен способ исправить эти тесты.