firefox - watir-webdriver 函数不作为脚本执行,而是在交互式 ruby​​ shell 上运行

标签 firefox watir watir-webdriver irb

我正在尝试使用 watir 为 Web 应用程序编写自动化脚本。 UI中有一个 slider ,其范围是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 位

最佳答案

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

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

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

关于firefox - watir-webdriver 函数不作为脚本执行,而是在交互式 ruby​​ shell 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657911/

相关文章:

css - Firefox 33 : Flexbox issue with 100% height, justify-content: space-between and child 大于 100%

php - 在 firefox 中使用 selenium 插件时,我们如何放置时间戳等动态输入?

flash - Firefox 中的 Flowplayer 为空

ruby - gem 安装 watir 不工作

ruby - 等待文本出现

ruby - FireWatir 文本字段集 : Very Slow

ruby - 使用 Watir-webdriver 头脑 Storm 验证 HTML 表格内容的方法

jquery - 为什么 Safari 不喜欢 JQUERY 中的 .trim() ?

ruby - 将大文本粘贴到 Ruby 中的 Watir Webdriver 文本字段中

internet-explorer - 运行 watir-webdriver 时是否有任何加速 IE 的好方法