如何从Ruby Selenium自动化脚本中选择文件浏览对话框中的文件(即从我的PC上传文件)?
答案 0 :(得分:2)
我想我以前遇到过这个问题。
当您在Ruby中编写selenium脚本时,您可以控制浏览器的所有窗口。但文件选择器对话框和文件下载对话框实际上是系统窗口,因此您无法通过selenium控制它们。
但是,对于在Windows上运行的测试,您可以通过Win32OLE gem控制它们。但当然,你无法在Mac或Linux上运行这些测试。
就像硒一般,它有点像hacky。但这是它的工作原理:
require 'selenium'
require 'test/unit'
require 'win32ole'
class DownloadFileTest < Test::Unit::TestCase
def setup()
@wsh = WIN32OLE.new('Wscript.Shell')
end
def teardown
WIN32OLE.ole_free(@wsh) # yes, this is required *rolls eyes*
end
def test_download_file
# ...stuff that causes a download window to pop up...
@wsh.AppActivate("Opening")
sleep(2)
@wsh.SendKeys("{RIGHT}{ENTER}") # Hits ok button - file downloads
sleep(3)
# Use regular Ruby File methods to assert stuff on the file content
end
答案 1 :(得分:0)
我会跳过所有OLE的东西,只需输入到该字段的路径:)
只要您使用其中一种特权模式运行Selenium RC,就可以执行此操作。如果您使用的是最新的1.0 beta 2,则默认使用这些。