我的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();
}
}
我已经更新了元素定位器为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");