无法使用Webdriver拖动元素(Javascript)

时间:2014-03-19 06:19:51

标签: javascript web selenium-webdriver

使用以下代码拖动元素 -

“WebElement baseElement = driver.findElement(By.xpath(”Element ID“);

动作clicker = new Actions(驱动程序);

clicker.moveToElement(baseElement).moveByOffset(20,0).click()。perform();

元素不会被移动到给定的偏移位置,而是拖动到可能的结束,无论偏移值是什么(0,0,),(2,0)等。

但被拖动的元素在一秒钟之后就会移动到其原始位置。

手动不会发生这种情况,并且能够在限制范围内拖动到我希望的位置。

这只是栏上的拖动元素,而不是拖放元素。

还尝试了不同的拖拽相关方法,但没有任何工作和面临相同的情况。

如果有人遇到同样的情况,请帮帮我。

在FF 17ESR,20和24ESR上尝试使用Selenium 2.27到2.40并重复该问题。

1 个答案:

答案 0 :(得分:0)

请找到以下选项。

选项1:

WebElement eleFrom = driver.findElement(By.xpath("//*[@id='draggable']"));
WebElement eleTo = driver.findElement(By.xpath("//*[@id='droppable']"));   
  Actions action = new Actions(driver); 
action.dragAndDrop(eleFrom, eleTo).perform();

选项2:

Actions builder = new Actions(dr);       
Action dragAndDrop = builder.clickAndHold(someElement) 
       .moveToElement(otherElement) 
       .release(otherElement) 
       .build(); 
dragAndDrop.perform();

选项3: 我们可以在Actions类中使用以下函数。

dragAndDropBy(WebElement source, int xOffset, int yOffset)

在源元素的位置执行单击并保持的便捷方法,移动给定的偏移量,然后释放鼠标。

希望它有所帮助,否则随时可以恢复。