【问题标题】:How to setup Capybara with Safari Technology Preview in Ruby如何在 Ruby 中使用 Safari 技术预览设置 Capybara
【发布时间】:2020-04-21 05:18:34
【问题描述】:

我无法使用 Capybara 和 Selenium 与 Safari Technology Preview (STP) 建立会话。 Capybara 甚至不会打开浏览器窗口。

我已经升级到 Ruby 2.3.0 Capybara 2.14.2 Selenium 3.4.0
我从https://developer.apple.com/safari/download/下载并安装了 STP
我正在尝试使用以下代码:

Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(
  app,
  browser: :safari 
)
end
Capybara.default_driver = :selenium

如何初始化 Capybara 以使用已实现 W3C 自动化标准的 STP safaridriver?

【问题讨论】:

    标签: ruby selenium safari capybara


    【解决方案1】:

    为了让它工作,我使用了以下代码:

        #This is what we use to test the Safari release channel. 
        #You will have to install Safari Technology Preview (STP) from Apple.
    
        #see standard properties here: https://www.w3.org/TR/webdriver/#capabilities
        #STP requires a capabilities object
        #you could use any of the properties from the link above. 
        #I just used a accept_insecure_certs for the heck of it
        desired_caps = Selenium::WebDriver::Remote::Capabilities.safari(
          {
            accept_insecure_certs: true
          }
        )
        Capybara.register_driver :safari_technology_preview do |app|
          Capybara::Selenium::Driver.new(
            app,
            browser: :safari,
            driver_path: '/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver',
            desired_capabilities: desired_caps
          )
        end
        Capybara.default_driver = :safari_technology_preview
    

    【讨论】:

      【解决方案2】:

      现在有一种方法可以在不指定路径的情况下执行此操作(您可能不知道)。 Selenium 驱动程序支持告诉驱动程序您想要技术预览。但是,这似乎与其他选项的工作方式略有不同。

      调用 Selenium::WebDriver::Safari.technology_preview! 会为此后创建的任何 Safari 驱动程序启用该功能。

      Capybara.register_driver :safari_tech_preview do |app|
        Selenium::WebDriver::Safari.technology_preview!
        capabilities = Selenium::WebDriver::Remote::Capabilities.safari
        Capybara::Selenium::Driver.new(app, browser: :safari, desired_capabilities: capabilities)
      end
      

      确保您首先在技术预览浏览器中启用了远程自动化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-09
        • 2019-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多