我想将元素从一个地方拖放到另一个地方。所以,我正在使用动作类来实现我的功能。
问题是我的代码执行成功,没有显示任何错误,但功能目标无法实现。
我在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();
您也可以看到下面附带的图像,代码执行成功,没有显示任何错误。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我们也可以这样尝试
Action dragAndDrop = builder.clickAndHold(src)
.moveToElement(trg)
.release(trg)
.build();
dragAndDrop.perform();
答案 1 :(得分:0)
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。我仍在寻找使这项工作的解决方案。当你说代码运行没有任何错误也没有做任何事情时尝试了一切