如何在Selenium中移动滑块?

问题描述 投票:0回答:1

我的X偏移量使滑块向右移动了一个滑块,但是我想尝试在不点击的情况下添加更多的滑块。为什么在增加X偏移量的情况下,它只滑过一次?断言回来2750英镑,而不是我想要的3250英镑。

public class HomePage {
    static{
        System.setProperty("webdriver.chrome.driver", "C:/webdrivers/chromedriver81/chromedriver.exe");

    }
    WebDriver driver = new ChromeDriver();

    String urlBase = "http://www.dotdotloans.co.uk";

    @BeforeTest
    public void beforeTest() {
        driver.get(urlBase);
        driver.manage().window().maximize();
    }


    @Test
    public void verify36monthloan3250() {
        driver.findElement(By.cssSelector("div.flex-xs:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > a:nth-child(3)")).click();
        String  calcloan = driver.findElement(new By.ByCssSelector(".flex-col-11-md > h1:nth-child(1)")).getText();
        Assert.assertEquals(calcloan, "Calculate your loan");
        //move slider 70%
        WebElement slider = driver.findElement(new By.ById("calc_slider-amount"));
        Actions move = new Actions(driver);
        Action action = move.dragAndDropBy(slider, 600, 0).build();
        action.perform();
        String  borrow = driver.findElement(new By.ByCssSelector("#loan_value")).getText();
        Assert.assertEquals(borrow, "£3250");
        // confirm monthly repayment
        // credit charge 2 decimal places
        //total to pay 2 decimal places
        //APR
        //Click Apply now
        //verify string has 3250 and 36 months
    }


    @AfterTest
    public void AfterTest() {
        driver.quit();
    }
}
selenium testng
1个回答
0
投票

我已经更新了元素定位器为xpath,并使用x偏移量为130。我已经执行了下面的代码,工作正常。

WebElement slider = driver.findElement(By.xpath("//div[@class='noUi-origin']/div"));
Thread.sleep(3000);
Actions move = new Actions(driver);
Action action = move.dragAndDropBy(slider, 130, 0).build();
action.perform();
Thread.sleep(3000);
String  borrow = driver.findElement(new By.ByCssSelector("#loan_value")).getText();
Assert.assertEquals(borrow, "3250");
© www.soinside.com 2019 - 2024. All rights reserved.