我过去曾使用VBScript进行QTP,我可以使用输入框功能显示弹出窗口。
我想知道是否有办法用Ruby做到这一点?我需要一个弹出窗口,允许用户在WATIR脚本执行之前输入一些信息。
我环顾了StackOverflow,但没有看到任何东西。
答案 0 :(得分:3)
这里有一个如何从Ruby中的vbscript获取消息框的示例,我将尝试以相同的方式获取输入框
require "Win32API"
message = "This is a sample Windows message box generated using Win32API"
title = "Win32API from Ruby"
api = Win32API.new('user32','MessageBox',['L', 'P', 'P', 'L'],'I')
api.call(0,message,title,0)
答案 1 :(得分:1)
也许这个示例代码可以帮助您(仅限win32):
require 'win32ole'
def inputbox( message, title="Message from #{__FILE__}" )
vb_msg = %Q| "#{message.gsub("\n",'"& vbcrlf &"')}"|
vb_msg.gsub!( "\t", '"& vbtab &"' )
vb_msg.gsub!( '&""&','&' )
vb_title = %Q|"#{title}"|
# go!
sc = WIN32OLE.new( "ScriptControl" )
sc.language = "VBScript"
sc.eval(%Q|Inputbox(#{vb_msg}, #{vb_title})|)
#~ sc.eval(%Q|Inputbox(#{vb_msg}, #{vb_title}, aa,hide)|)
end
def popup(message)
wsh = WIN32OLE.new('WScript.Shell')
wsh.popup(message, 0, __FILE__)
end
str = "a | does not break it...\n\nOne\n\tTwo tabbed\nThree..."
res = inputbox( str, "demonstration | title")
popup %Q|When asked\n\n"#{str}"\n\nyou answered:\n#{res}|
这导致:
它跟随一个弹出框。
另见http://rubyonwindows.blogspot.com/2007/04/ruby-excel-inputbox-hack.html
答案 2 :(得分:1)
因为我无法找到一个用于Windows的输入框api,所以如果我需要一些简单的对话框,我大部分时间都会这样做。与红鞋不同,它只是一种易于安装的宝石。
require 'green_shoes'
Shoes.app{
e = edit_line
button("Click me!"){alert("You entered." + e.text)}
}
答案 3 :(得分:0)
Ruby是一种编程/脚本语言,所以它本身并没有做任何类型的GUI或图形相关的东西。话虽如此,有很多项目和框架使用Ruby来完成您正在寻找的类型。最重要的是使用Ruby创建Web应用程序的Ruby on Rails,以及用于创建计算机应用程序的Shoes。
答案 4 :(得分:0)
我建议shoes,它是一个用于编写图形应用程序的跨平台工具包。
我用它并且非常酷,你可以做类似的事情:
Shoes.app :width => 300, :height => 200 do
stack do
edit_line :width => 400
end
end