如何在 Ruby Selenium 自动化脚本中从文件浏览对话框(即从我的 PC 上传文件)中选择文件?
Karla
问问题
535 次
2 回答
2
我想我以前遇到过这个问题。
当您在 Ruby 中编写 selenium 脚本时,您可以控制浏览器的所有窗口。但是文件选择器对话框和文件下载对话框实际上是系统窗口,因此您无法通过 selenium 控制它们。
但是,您可以通过 Win32OLE gem 控制它们,以便在 Windows 上运行测试。但是当然你不能在 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
于 2009-04-01T16:29:52.327 回答
0
我会跳过所有的 OLE 内容,只需在字段中输入路径:)
只要您使用其中一种特权模式运行 Selenium RC,您就可以执行此操作。如果您使用的是最新的 1.0 beta 2,则默认使用这些。
于 2009-04-01T20:40:46.497 回答