【发布时间】: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