当前位置: 首页 > 知识库问答 >
问题:

更新所需的\u功能时出现的问题:Selenium WebDriver-Ruby

习和通
2023-03-14

这里是超级初学者。尝试使用Ruby使用Selenium WebDriver更新此测试,我正在经历的课程使用以下已弃用的内容。

driver = Selenium::WebDriver.for :remote, desired_capabilities: :firefox

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

“WARN Selenium[不推荐][:desired\u capabilities]:不推荐使用desired\u capabilities作为驱动程序初始化的参数。如有必要,请使用:capabilities和数组值为capabilities/options的函数。”

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

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

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

还查看了这些来源

  • https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities
  • https://www.lambdatest.com/blog/desired-capabilities-in-selenium-testing/
  • Selenium将firefox配置文件包括在DesiredCapabilities for Remote Driver中
  • https://www.selenium.dev/documentation/webdriver/remote_webdriver/

基于最后一个链接,我认为下面的内容应该可以吗?但我肯定我只是在语法上遗漏了一些东西。

驱动程序=Selenium::WebDriver。用于:远程::功能。firefox

共有2个答案

蔡鸿骞
2023-03-14
# 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

我希望这对你有帮助。

隆扬
2023-03-14

在Ruby中,Selenium功能并不是它们应该具备的功能。您希望避免现在完全使用功能。

这是硒留档中的一个示例,其中包含如何正确使用选项的前/后:https://www.selenium.dev/documentation/webdriver/getting_started/upgrade_to_selenium_4/#before

它与其他Selenium语言的操作方式不匹配,因此我计划更改Selenium 4.3中的弃用项以使它们匹配。

 类似资料:
  • 我有一个表,我想用另一个表中的值更新该表,我正在使用以下代码: 尽管事实上,表。id是tableA的主键,我不断得到以下错误: 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项- 我做错了什么?

  • 问题内容: CLASSPATH的路径之一是“ / Users / smcho / Desktop / clojure”,并且此目录中有文件hello.clj。 运行clojure和运行(要求’hello)会给出此错误消息。 当我将目录更改为“ /Users/…/clojure”并运行相同文件(要求“ hello”)时,没有问题。的。在CLASSPATH上。 跑步 也可以。 为什么Clojure在C

  • 我在将我的功能部署到Google Cloud时遇到问题: Firebase CLI中的显示方式和消息: Firebase控制台上的显示方式和消息:

  • 但得到404错误 如何让它发挥作用?如果我从文档中获取这个endpoint,为什么我会得到404?

  • 当项目已经运行状态时,这个错误不会发生。但是第二天我试图运行同一个项目,然后这个错误就出现了。 失败:生成失败,出现异常。 > 其中:生成文件'D:\src\flatter。发布缓存\托管\发布。达特朗。org\firebase\u auth-3.2.0\android\build。格雷德尔热线:58 错误:评估项目时出现问题:firebase_auth。 无法从缓存加载脚本'D:\src\flu

  • 问题内容: 我正在尝试使用一些conda环境创建一个docker容器。当我在交互模式下运行容器时 运行没有问题。但是,每当我尝试使用Docker文件执行这些命令时,我都会收到 Docker文件如下所示: 因此似乎使用了sh而不是bash,所以我将Dockerfile编辑为以下内容: 有以下错误 问题答案: 您必须在构建期间使用变量将anaconda添加到PATH中,然后才能在Dockerfile中