java
  • jquery
  • selenium
  • selenium-webdriver
  • automated-tests
  • 2017-06-13 65 views 0 likes 
    0

    在網站「http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html」中存在一個滑塊。默認情況下,第一個滑塊值爲10.我試圖自動將滑塊移動到值20的功能。但不能執行相同的操作。我已經使用下面的代碼使用Webdriver拖放滑塊java

    WebElement sliderOne = driver.findElement(By.xpath("//*[@class='range']/output")); 
         System.out.println(sliderOne.getAttribute("value")); 
         Actions action = new Actions(driver); 
         action.clickAndHold(sliderOne); 
         action.moveByOffset(20, 0).release().build().perform(); 
    

    請在下面找到滑塊和圖像的滑塊的HTML代碼。請幫助自動化滑塊。

    <div class="range"> 
     
          <input type="range" name="range" min="1" max="100" value="10" onchange="range.value=value"> 
     
          <output id="range">10</output> 
     
          </div>
    enter image description here

    回答

    0

    滑塊在<input>標籤,而不是<output>標籤。 <output>標籤就是價值。

    WebElement sliderOne = driver.findElement(By.xpath("//*[@class='range']/input")); 
    
    +0

    在給出輸入標記並使用代碼'action.moveByOffset(20,0).release()。build()。perform();'滑塊移動到61.我們如何設置偏移量使滑塊移動到20? – Dinu

    +0

    @Dinu''clickAndHold'在元素的中間執行。要移至20,您需要給出負偏移(我相信約爲-100)。您可以使用'sliderOne.getSize()。width'屬性來設計通用公式。 – Guy

    +0

    我能夠通過使用下面的代碼移動到20,但可以請你解釋或給一些想法如何計算偏移值。 – Dinu

    0

    您可以使用下面的代碼來移動滑塊值20:

    public static void main(String[] args) throws Exception { 
    
        System.setProperty("webdriver.chrome.driver", "D:/Selenium/Drivers/chromedriver.exe"); 
        WebDriver driver = new ChromeDriver(); 
        driver.manage().window().maximize(); 
        driver.get("http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html"); 
        Thread.sleep(1000); 
        WebElement sl = driver.findElement(By.xpath(".//*[@id='slider1']/div/input")); 
        //Using Action Class 
        Actions move = new Actions(driver); 
        Action action = move.dragAndDropBy(sl, -79, 0).build(); 
        action.perform(); 
    
    } 
    

    我已經測試它和它的工作。 希望它能幫助你。

    0

    這是設置確切滑塊值的代碼。

    System.setProperty("webdriver.chrome.driver","//path to driver"); 
    WebDriver driver = new ChromeDriver(); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    driver.get("http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html"); 
    
    WebElement eleSlider1=driver.findElement(By.cssSelector("[name='range']")); 
    int valueToBeset=40; 
    valueToBeset=(valueToBeset>1&&valueToBeset<30)?valueToBeset+1:valueToBeset; 
    int eleSlider1Width=eleSlider1.getSize().getWidth(); 
    int pixelValue=(eleSlider1Width)*valueToBeset/100;  
    new Actions(driver).moveToElement(eleSlider1,pixelValue, 0).click().build().perform(); 
    
    相關問題