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