【问题标题】:file_detector error watir webdriverfile_detector 错误 watir webdriver
【发布时间】:2014-07-15 06:15:53
【问题描述】:

我需要通过文件字段表单上传文件。在本地它工作正常。但是通过 Selenium Grid 测试需要上传文件到远程机器。

解决方案是使用文件检测器。如这里https://github.com/watir/watir-webdriver/issues/175 或这里https://saucelabs.com/resources/selenium-file-upload 所述

在我的 hooks.rb 中

require "watir-webdriver"

client = Selenium::WebDriver::Remote::Http::Default.new

capabilities = Selenium::WebDriver::Remote::Capabilities.new(browser_name: ENV['BROWSER'].to_sym, :http_client => client)
browser = if ENV['REMOTE']
  Watir::Browser.new(
    :remote,
    url: 'http://remoteurl:4444/wd/hub',
    desired_capabilities: capabilities,
    :http_client => client
  )
else
  Watir::Browser.new(ENV['BROWSER'].to_sym, :http_client => client)
end

browser.driver.file_detector = lambda do |args|
  str = args.first.to_s
  str if File.exist?(str)
end

但是当我运行测试时,它们最终会出现错误: undefined method `file_detector=' for #<Selenium::WebDriver::Driver:0x000000012902b0> (NoMethodError)

如何通过 Selenium Grid 上传文件?

【问题讨论】:

    标签: ruby selenium-webdriver cucumber watir-webdriver


    【解决方案1】:

    查看代码,file_detector= 方法是在Selenium::WebDriver::DriverExtensions::UploadFiles 模块中定义的。使用此驱动程序扩展的唯一网桥是 Selenium::WebDriver::Remote::Bridge 类。

    换句话说,该方法仅适用于使用:remote 类型创建的浏览器:

    browser = Watir::Browser.new(:remote)
    

    我假设您在使用非远程驱动程序时遇到了这个异常(即当进入“if”语句的“else”部分时)。尝试将 file_detector 的设置移动到仅在使用远程驱动程序时。

    if ENV['REMOTE']
      browser = Watir::Browser.new(
        :remote,
        url: 'http://remoteurl:4444/wd/hub',
        desired_capabilities: capabilities,
        :http_client => client
      )
      browser.driver.file_detector = lambda do |args|
        str = args.first.to_s
        str if File.exist?(str)
      end  
    else
      browser = Watir::Browser.new(ENV['BROWSER'].to_sym, :http_client => client)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多