ruby - 如何使用 watir-webdriver 和 ruby​​ 自动化 slider ?

标签 ruby watir watir-webdriver

我正在尝试使用 watir-webdriver 和 ruby​​ 自动化 Jquery UI slider ,但我没有运气。我希望能够操纵 slider 来增加或减少该值。我到处搜索并问过我的几个同事,但没有人有答案。我附上了 slider 的一段 HTML 代码。任何帮助将不胜感激。

网址链接:http://www.whatcar.com/new-car-deals/ (价格范围 slider )

我没有为 slider 编写任何代码,因为我不知道如何去做。如果我能走上正确的道路,那就太好了。另外,我提出的问题似乎没有显示 HTML 代码。

最佳答案

它是一个 Jquery 小部件,一旦单击其中一个句柄,它就会出现(查看脚本)以响应按键操作。句柄是链接对象,在一对 div 内部,外部的 ID 值为“slider-range”

您应该能够通过 browser.div(:id => 'slider-range').link(:index => n) 解决它们,其中 n = 0 表示左侧, n=1 表示右手一个。

先手动试试这个

  • 单击 slider 的左侧 handle
  • 然后按键盘上的箭头键.. 每按一次向右或向左箭头键,它就会向上或向下移动 1K(磅)。
  • 将其向右移动后,单击 Home 键,它应重置为其最小值
  • 对右侧 handle 重复上述操作,但使用 End 键将其重置到最右侧。

理论上,您可以在右侧 slider 处触发点击事件以获得焦点,然后触发一些按键事件以首先将其设置在最右侧(结束),然后使用足够多的向左箭头将其向下移动到您想要的最高值。

重复左 handle ,使用主页键将其设置到左端,然后使用向右箭头键移动它

我现在没有时间进一步试验和开发一个精确的脚本,但我认为你可以创建两个小函数,即使它们采用范围上限值和下限值并执行所需的按键次数来移动从5K往上降到合适,从100k往上往下

请注意,这个东西是非常非常事件驱动的,它会响应(至少在玩它的同时观看开发工具时)鼠标悬停、mousedown、mouseup 等。如果使用 click 无法“获取”控件的注意'以便它响应按键,请尝试改用 onmousedown 事件。

使用您答案中的代码,将左侧 slider 移动到 12K,我会尝试

browser.div(:id => 'slider-range').link(:index => 0).click  #make sure it has focus
browser.div(:id => 'slider-range').link(:index => 0).send_keys :home #set to 5K    
7.times do
   browser.div(:id => 'slider-range').link(:index => 0).send_keys :arrow_right
end 

关于ruby - 如何使用 watir-webdriver 和 ruby​​ 自动化 slider ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151911/

相关文章:

watir - 如何在访问 Watir 网页之前加载 cookie

ruby - watir-webdriver element.hover,在 Windows 上,激活悬停,但只持续一瞬间

ruby - Mongoid:如何实现嵌入式文档之间的关系?

ruby-on-rails - 如何设置 Ruby SSL 方法

css - 用 watir 检查样式表

ruby - Watir 魔术转义序列?

ruby - bundle 安装到开发

ruby - 是否可以使 PhantomJS 在 Watir-WebDriver 中可见?

Watir:在 Safari 中找不到密码字段

javascript - Ruby,Watir,无法单击由 Java 脚本加载的框架中的按钮