我正在使用Ruby gem Rautomation来测试基于Windows的应用程序。应用程序在远程Citrix服务器后面运行,因此我无法以通常的方式与应用程序进行交互。我无法使用windows inspect.exe等刮刀访问应用程序中的任何元素。我想要做的是使用键盘和/或鼠标在应用程序上选择文本,然后将其复制到文件以进行验证。
以下是我想要做的代码片段:
window = RAutomation::Window.new(:title => /Manager App/i, :adapter => 'ms_uia')
window.move_mouse(60,95)
window.click_mouse_and_hold # is there a 'hold' method??
window.move_mouse(80,95)
window.release_mouse # is there a 'release' method??
window.send_keys [:left_control, 'c']
OR
window.move_mouse(60,95)
window.click
window.send_keys :shift # hold this key down somehow??
window.move_mouse(80,95)
window.release_shift # is there a 'release' key method??
window.send_keys [:left_control, 'c']
我想要做的是拖动鼠标选择此应用程序的文本部分,或选择一些文本的开头,按住shift,然后选择我需要的文本的结尾。基本上复制用户如何在现实生活中选择和复制文本,但通过Rautomation。这可能吗?
由于
答案 0 :(得分:0)
我尚未对其进行测试,但使用win32
和autoit
适配器,您应该可以使用Mouse#press
和Mouse#release
进行测试。以下是a spec:
it "#press/#release" do
window = RAutomation::Window.new(:title => "MainFormWindow")
window.maximize
text_field = window.text_field(:index => 2)
text_field.set("start string")
text_field.value.should == "start string"
mouse = window.mouse
mouse.move :x => 146, :y => 125
mouse.press
mouse.move :x => 194
mouse.release
window.send_keys [:control, "c"]
text_field.set("new string")
text_field.value.should == "new string"
mouse.move :x => 146
mouse.press
mouse.move :x => 194
mouse.release
window.send_keys [:control, "v"]
text_field.value.should == "start string"
end
查看documentation for RAutomation可以为您提供更多帮助。