我正在尝试使用watir为Web应用程序编写自动脚本。 UI中有一个滑块,范围从1到11.它是一个水平div。因此,如果按右箭头键,数字会增加1,如果按左箭头键,数字会减少。我的问题是当我尝试单独执行irb中的以下语句时,send_keys
函数工作正常,但是一旦我将它移动到ruby脚本,它就不会执行send_keys。
assert($b.div(:class, "position").text == "2")
$b.div(:class, "scroll").wait_until_present
$b.div(:class, "scroll").click
$b.div(:class, "scroll").send_keys(:arrow_right)
assert($b.div(:class, "position").text == "3")
如果我在irb中单独运行,send_keys(:arrow_right)
可以正常工作。当试图运行一个脚本文件时,它不会给我任何错误并保持相同的数字,它只是说“失败的断言,没有给出消息。”
b.div(:class, "scroll").click
用于激活按下右箭头键的div。
我正在使用watir-webdriver 0.6.2,Firefox 18.0.2,Windows 7 64位
答案 0 :(得分:2)
正如您所提到的,b.div(:class, "scroll").click
是激活按下该键的div,
可能有一些可能需要一段时间来激活div,并且当你在IRB中执行该操作时需要适当的时间来加载,因为执行另一行需要时间,但是当你在脚本中执行并执行在点击div之后立即执行send_keys
操作,并且执行时没有及时激活该Div。
尝试在脚本中暂停/延迟一段时间,然后尝试执行send_keys
。
要暂停/延迟,您可以使用sleep(time_period)