2011-08-12 87 views
3

我正在对Windows资源管理器扩展的GUI测试进行自动化。想想像TortoiseSVN菜单。我希望能够做一些像TortoiseSVN->显示日志在上下文菜单中。Windows资源管理器外壳扩展的自动GUI测试

如果可能,我宁愿选择Ruby解决方案,但愿意成为语言不可知的人。

我发现this在网络上很接近但并不完全符合我的要求。它似乎只有一些非级联菜单的默认选项,并且不支持shell扩展。

任何建议将不胜感激。

回答

2

看看AutoItX3。 我想你可能能够做到你想做的。

您可以通过OLE与Ruby接口它:
http://actsasbuffoon.wordpress.com/2008/12/30/introduction-to-autoitx3/

编辑

我就加我如何进入这里的资源管理器右键菜单,也许有人能弄清楚如何获得进一步。我只是打了一下周围尝试,看看它是如何努力:

require 'win32ole' 

shell = WIN32OLE.new('Shell.Application') 
folder = shell.NameSpace("D:\\") 
files = folder.Items 
file = nil 

# Search for one specific file "test.rb" 
files.each { |f| file = f if f.Name == "test.rb" } 

# List all items in the context menu of test.rb 
file.Verbs.each { |v| puts v.Name } 

# At this point I ran out of ideas and couldn't figure out 
# how to traverse into the submenus of the context menu... 
+0

您可以给出AutoIt中上下文菜单中与外壳扩展交互的任何示例吗?说,就像右键单击C:\ foo.txt,然后执行TortoiseSVN-> Show Log(假设foo.txt在版本控制中)?大多数提供的示例似乎都是GUI创建而非操作。 – peakxu

+0

@peak - 对不起,我不知道如何具体做。我只是玩了一下'WIN32OLE',并设法访问上下文菜单中的项目,但我无法弄清楚如何进入子菜单。 – Casper

+0

感谢您对AutoIt的链接。这很有趣,虽然我还没有弄明白。 – peakxu

1

您可能会感兴趣的通过被称为win32-autogui红宝石宝石使用Ruby ......这种方法。它提供了一个用于测试Windows GUI应用程序的框架。将它与Ruby工具RSpec和Cucumber结合起来,它为您提供了强大的测试框架。

相关问题