我一直关注wiki设置Selenium 2.48.0的Safari扩展程序:
这主要是有效的,但偶尔在我的测试脚本(用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但是根据我对上述文章的理解,来自Selenium 2.53.0的Safari扩展也需要存在于Safari浏览器中。
此下载link不包含单独的safari扩展文件:
与版本2.48.0形成鲜明对比: http://selenium-release.storage.googleapis.com/index.html?path=2.48/
安装safari扩展程序有什么变化,我错过了什么吗?
注意:Safari版本为9.1.1
提前致谢,
答案 0 :(得分:2)
由于过去几年的安全性变化,您必须在本地登录时在每台目标计算机上手动安装Safari WebDriver扩展。 您无法自动执行此步骤。 它必须是自2016年1月上次更改以来已由注册的付费开发者帐户构建并代码签名的副本。
通常这意味着你应该自己构建它。
没有它,它将无法工作。
值得注意的是,扩展在大约两年内没有正式的代码更改。
值得注意的是,Apple悄悄宣布Safari 10拥有原生SafariDriver,作为W3C WebDriver草案RFC的一部分,要求所有浏览器提供Selenium WebDriver的WebDriver部分。
答案 1 :(得分:-1)
Selenium中的Safari支持远未完成且工作正常。此外,并非每个版本的Selenium都在Safari驱动程序中进行了更改,这就是为什么您应该使用目前最新版本2.48并且位于Selenium发布网站的相应目录中的原因。