1

如何在 Ruby Selenium 自动化脚本中从文件浏览对话框(即从我的 PC 上传文件)中选择文件?

4

2 回答 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 回答