Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何将滑块拖到末尾并验证文本框的值是否为20_Ruby_Selenium_Selenium Webdriver_Drag And Drop - Fatal编程技术网

Ruby 如何将滑块拖到末尾并验证文本框的值是否为20

Ruby 如何将滑块拖到末尾并验证文本框的值是否为20,ruby,selenium,selenium-webdriver,drag-and-drop,Ruby,Selenium,Selenium Webdriver,Drag And Drop,以下是html代码片段: <html><head><title>Javascript Slider Control - Example</title> <link rel="stylesheet" type="text/css" href="example_files/slider.css"> <script type="text/javascript" src="example_files/addanevent.js"&g

以下是html代码片段:

<html><head><title>Javascript Slider Control - Example</title>



<link rel="stylesheet" type="text/css" href="example_files/slider.css">
<script type="text/javascript" src="example_files/addanevent.js"></script>
<script type="text/javascript" src="example_files/slider.js"></script>
<script type="text/javascript" src="example_files/slider-setup.js"></script></head><body>

Slider 1:
<div class="slider" id="slider01">
    <div class="left"></div>
    <div class="right"></div>
    <img style="left: 207px;" src="example_files/knob.png" height="15" width="31">
</div>
Box 1:
<input id="output1">
<hr>

</body></html>

没有页面的所有代码,我无法在您的特定页面上测试它,但我在上找到了一个jQueryUI滑块示例页面。这里定义了一个滑动手柄,当我滑动它时,它工作了。从HTML中,看起来您抓取的是滑块(控件本身),而不是手柄(旋钮)。您是否试过抓住旋钮
IMG
标签并滑动它

x和y偏移以px为单位,因此120看起来是一个合理的值,但它会根据滑块的大小而变化

作为旁注,我建议当您通过id定位元素时,您可以使用find element by id而不是XPath来查找它。相比之下,用XPath查找东西非常慢,而且在定位这样的元素时也不需要

driver = Selenium::WebDriver.for :firefox
  driver.get(url)
  slider =  driver.find_element(:xpath, "//*[@id='slider01']")
  def verify_drag_drop_till_end
    driver.action.drag_and_drop_by(slider,120,0).perform
    sleep 1
    output_box = driver.find_element(:xpath, "//*[@id='output1']")
    puts output_box[:value]
  end