Action类不适用于selenium 3.5.3

我想将元素从一个地方拖放到另一个地方。 所以,我正在使用动作类来实现我的function。

问题是我的代码执行成功,没有显示任何错误,但function目标没有实现。

我在firefox和chrome浏览器中尝试了相同的代码,但同样的问题在两个浏览器中都被复制了。

这是网站url 。

我试过的代码:

driver.get("http://www.seleniumeasy.com/test/drag-and-drop-demo.html"); driver.manage().window().maximize(); driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 1')]")); driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 2')]")); driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 3')]")); driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 4')]")); WebElement to = driver.findElement(By.xpath("//div[@class='w50 moveleft']//div[@id='mydropzone']")); String[] array_drag = new String[] {"Draggable 1", "Draggable 2", "Draggable 3", "Draggable 4"}; for(int i=0; i<array_drag.length; i++) { WebElement from = driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), '"+array_drag[i]+"')]")); Actions act = new Actions(driver); act.clickAndHold(from).build().perform(); Thread.sleep(2500); act.clickAndHold().moveToElement(to).release(to).build().perform(); Thread.sleep(2500); } 

我也试过这个答案,但复制了同样的问题。

 Actions act = new Actions(driver); act.moveToElement(from).moveToElement(to).build().perform(); 

您也可以看到下面附带的图像,代码执行成功,没有显示任何错误。

在此处输入图像描述

任何人都可以帮我解决这个问题吗?

我们也可以这样试试

 Action dragAndDrop = builder.clickAndHold(src) .moveToElement(trg) .release(trg) .build(); dragAndDrop.perform(); 
  Actions builder=new Actions(driver); builder.clickAndHold(weDragFrom).build().perform(); Thread.sleep(5000); builder.click(weDragTo).build().perform(); builder.release(weDragTo).build().perform(); 

“不幸的是,这对我来说只适用于chrome,但不适用于Firefox或IE11。 我仍然在寻找使这项工作成为可能的解决方案。 当你说代码运行没有任何错误也没有做任何事情时尝试了一切