Как установить расширение Safari для Selenium 2.53 с браузером Safari

Я следил за wiki, чтобы настроить расширение Safari для Selenium 2.48.0:

В основном это работает, но иногда возникают странные ошибки в моих тестовых сценариях (написанных на Ruby/Capybara), например:

Selenium::WebDriver::Error::NoSuchElementError:
       Selenium::WebDriver::Error::NoSuchElementError
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/search_context.rb:64:in `rescue in find_element'
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/search_context.rb:55:in `find_element'
     # ./lib/about.rb:94:in `click_read_more_work'
     # ./spec/check_about_links.rb:91:in `block (3 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # IO::EAGAINWaitReadable:
     #   Resource temporarily unavailable - read would block
     #   /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/safari/server.rb:63:in `read_nonblock'

и:

Selenium::WebDriver::Error::UnknownError:
       Session is executing: findElements; cannot set current to: findElements
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/safari/bridge.rb:88:in `raw_execute'
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/bridge.rb:627:in `execute'
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/bridge.rb:606:in `find_elements_by'
     # /Users/admin/.rvm/gems/ruby-2.2.1/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/search_context.rb:84:in `find_elements'

Capybara относится к последней версии selenium webdriver gem: 2.53.0, но, насколько я понимаю вышеизложенную статью, расширение Safari из Selenium 2.53.0 также должно существовать в браузере Safari.

Эта ссылка для скачивания не содержит отдельного файла расширения Safari:

в отличие от версии 2.48.0, в которой: http://selenium-release.storage.googleapis.com/index.html?path=2.48/

Что-то изменилось в установке расширения Safari, и я что-то упустил?

Примечание. Версия Safari — 9.1.1.

Заранее спасибо,


person Bakir Jusufbegovic    schedule 20.06.2016    source источник


Ответы (2)


Из-за изменений в системе безопасности, произошедших за последние несколько лет, вы должны вручную установить расширение Safari WebDriver на каждом целевом компьютере при локальном входе в систему. Вы не можете автоматизировать этот шаг. Это должна быть копия, созданная и подписанная зарегистрированным платным аккаунтом разработчика с момента последнего изменения в январе 2016 года.

Как правило, это означает, что вы должны построить его самостоятельно.

Без этого не получится.

Стоит отметить, что в расширении не было официальных изменений кода около двух лет.

Также стоит отметить, что Apple незаметно объявила, что Safari 10 будет иметь собственный SafariDriver, как часть проекта RFC W3C WebDriver, требующего, чтобы все браузеры предоставляли часть WebDriver Selenium WebDriver.

person uchuugaka    schedule 14.07.2016

Поддержка Safari в Selenium далека от полной и корректной работы. Также не каждая версия Selenium имеет изменения в драйвере Safari, поэтому вам следует использовать последнюю доступную версию, которая на данный момент 2.48 и находится в соответствующем каталоге веб-сайта выпусков Selenium.

person vania-pooh    schedule 21.06.2016