使用 moveByOffset()
方法面对问题。
关于这个link我可以将 slider 移至右侧,但当我尝试将其移回左侧时,它就是不动。告诉我 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 的新手,正在尝试研究它。请帮忙。提前致谢。
最佳答案
如果您想向后移动 slider ,您应该使用以下代码:
actions.clickAndHold(element).moveByOffset(-i,0).release().build().perform();
在你的第二个时间。
关于java - Selenium :moveByOffset() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47091819/