2

我正在尝试使用 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")

send_keys(:arrow_right)如果我在 irb 中单独运行,则有效。当试图运行一个脚本文件时,它没有给我任何错误并且保持在相同的数字上,它只是说“断言失败,没有给出消息”。

用于激活要在其b.div(:class, "scroll").click上按下右箭头键的 div。

我正在使用 watir-webdriver 0.6.2、Firefox 18.0.2、Windows 7 64 位

4

1 回答 1

2

正如您所提到b.div(:class, "scroll").click的,要激活要在其上按下键的 div,这可能需要一段时间才能激活 div,并且当您在 IRB 中执行此操作时,将获得适当的加载时间是时候执行另一行了,但是当您在脚本中执行此操作并执行时,您会send_keys在单击 div 后立即执行操作,并且执行没有得到适当的时间来激活该 Div。

尝试在脚本中暂停/延迟一段时间,然后尝试执行send_keys.

要暂停/延迟,您可以使用sleep(time_period)

于 2013-05-21T06:53:45.483 回答