面对moveByOffset()方法的问题。

在此link上,我可以将滑块移至右侧,但是当我尝试将其移回左侧时,它只是没有移动。告诉我moveByOffset()方法是否有问题,或者我应该使用其他任何方法。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class JquerySlider {

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    WebDriver driver=null;
    try {

        System.setProperty("webdriver.chrome.driver","C:\\chromedriver\\chromedriver.exe");

        driver = new ChromeDriver();

        driver.get("https://jqueryui.com");

        driver.manage().window().maximize();

        driver.findElement(By.xpath("//a[text()='Slider']")).click();

        Actions actions = new Actions(driver);

        driver.switchTo().frame(0);

        WebElement element = driver.findElement(By.xpath("//div[@id='slider']/span"));

            for (int i = 1; i <=10; i++) {
                System.out.println(i);
                actions.clickAndHold(element).moveByOffset(i, 0).build().perform();
            }

            //WebElement element2 = driver.findElement(By.xpath("//div[@id='slider']/span"));

            /*for (int i = 10; i > 0; i--) {
                System.out.println("For 2 "+i);
                actions.clickAndHold(element).moveByOffset(0,0).release().build().perform();
            }*/ This part is not working...

    } catch (Exception e) {
        // TODO: handle exception
        System.err.println(e.getMessage());
    }finally{
        Thread.sleep(5000);
        driver.close();

    }


}


}

我是Selenium的新手,正在努力研究它。请帮忙。提前致谢。

最佳答案

如果您想将滑块向后移动,则应使用以下代码:

actions.clickAndHold(element).moveByOffset(-i,0).release().build().perform();


在你的第二个。

关于java - Selenium :moveByOffset()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47091819/

10-09 12:29