首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新desired_capabilities的问题: Selenium WebDriver - Ruby

更新desired_capabilities的问题: Selenium WebDriver - Ruby
EN

Stack Overflow用户
提问于 2022-05-10 17:06:19
回答 2查看 1.5K关注 0票数 3

这里是超级初学者。尝试使用Ruby更新这个测试--我正在进行的课程--使用下面的内容,这是不推荐的。

代码语言:javascript
复制
driver = Selenium::WebDriver.for :remote, desired_capabilities: :firefox

当我试图运行测试时,我在cmd中遇到的错误是

“不推荐将:desired_capabilities作为驱动程序初始化的参数。如果有必要,请使用:功能数组值的功能/选项。”

因此,我试图找到如何抑制这个链接中提到的错误的例子,但是我很难找到如何实现该错误的示例。

我还试图查找几种仅仅使用功能的方法:正如建议的那样,但我也很难找到相应的资源,所以我只是四处乱搞,尝试了不同的组合,但都没有用。

好奇是否有人知道什么能帮我找到答案?

还查看了这些消息来源

基于最后一个链接,我认为下面应该有效吗?但我相信我只是遗漏了一些语法上的东西。

driver = Selenium::WebDriver.for :Remote::Capabilities.firefox

EN

回答 2

Stack Overflow用户

发布于 2022-05-10 17:34:35

Selenium功能在Ruby中并不适用。现在,您希望完全避免使用功能。

以下是Selenium文档中关于如何正确使用选项的前/后示例:4/#之前

它与其他Selenium语言的工作方式不匹配,因此我计划更改Selenium4.3中的弃语,以使它们匹配。

票数 1
EN

Stack Overflow用户

发布于 2022-05-10 17:41:50

代码语言:javascript
复制
# spec/rails_helper.rb

Capybara.server = :puma, { Silent: true }
Capybara.server_port = 9887
Capybara.register_driver :headless_chrome do |app|
  options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
    opts.args << '--headless'
    opts.args << '--disable-site-isolation-trials'
    opts.args << '--no-sandbox'
  end

  options.add_preference(:download, prompt_for_download: false, default_directory: Rails.root.join('tmp/capybara/downloads'))
  options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })

  service_options = ::Selenium::WebDriver::Service.chrome(
    args: {
      port: 9515,
      read_timeout: 120
    }
  )

  remote_caps = Selenium::WebDriver::Remote::Capabilities.chrome(
    'goog:loggingPrefs': {
      browser: ENV['JS_LOG'].to_s == 'true' ? 'ALL' : nil
    }.compact
  )

  Capybara::Selenium::Driver.new(
    app,
    browser: :chrome,
    capabilities: [remote_caps, options],
    service: service_options,
    timeout: 120
  )
end

Capybara::Screenshot.register_driver(:headless_chrome) do |driver, path|
  driver.browser.save_screenshot(path)
end

Capybara.javascript_driver = :headless_chrome

我希望这对你有帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72190419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档