2

我想翻阅笔记本,不使用任何按钮或类似的东西,而是实际单击页面的活动元素或拖动页面以进入下一个。笔记本和这个类似。我尝试了许多不同的方法,但都失败了。

我试图开始工作的代码是:

    WebElement page= driver.findElement(By.xpath("//*[@id='pages']/section[4]/div"));
    Actions kkk = new Actions(driver);
    Actions flip= kkk.moveToElement(page, 780, 200);
    flip.click().build().perform();

我还尝试了下一种方法:

flip.perform();
Thread.sleep(200); //to allow the mouse to hover and activate the page
flip.click().perform();

没有任何效果,鼠标悬停在必要的地方,如果我尝试在同一个地方单击,它只会重置并且页面会平滚。

另外,有没有办法在不使用偏移(坐标)的情况下找到必要的位置(元素的活动点),我想不出任何其他方式。

4

1 回答 1

1

这似乎更符合drag and drop.

尝试做这样的事情

WebElement draggable = browser.findElement(By.xpath("//*[@id='pages']/section[4]/div")); 
new Actions(browser).dragAndDropBy(draggable, 200, 10).build().perform();  

基于

org.openqa.selenium.interactions.Actions.dragAndDropBy(WebElement source, int xOffset, int yOffset)

更新


或者这样

WebElement element = driver.findElement(By.name("source"));
WebElement target = driver.findElement(By.name("target"));

(new Actions(driver)).dragAndDrop(element, target).perform();

更新 2


或者这样

Actions builder = new Actions(driver);

   Action dragAndDrop = builder.clickAndHold(someElement)
       .moveToElement(otherElement)
       .release(otherElement)
       .build();

   dragAndDrop.perform();
于 2012-11-08T14:06:58.897 回答