面对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/