2017-08-28 94 views
3

我想将元素从一个地方拖放到另一个地方。所以,我使用动作类来实现我的功能。动作班级与硒不兼容3.5.3

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

我已经在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(); 

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

enter image description here

谁能帮助我解决这个问题?

+0

是直接dragAndDrop在行动不工作? –

+0

@murali硒,是的,它也没有工作。 –

+0

该网站似乎没有按预期工作。我甚至无法手动拖放。是网站的问题,而不是你的代码? –

回答

0

我们可以尝试这样也

Action dragAndDrop = builder.clickAndHold(src) 
     .moveToElement(trg) 
     .release(trg) 
     .build(); 
     dragAndDrop.perform(); 
+0

感谢您宝贵的时间@murali硒,我已经尝试你的代码,但复制相同的问题。 –

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。我仍然在寻找解决方案来完成这项工作。试过所有你说的代码运行没有任何错误,也没有任何事情

+0

感谢您的回答,我已经尝试了您的代码,但对于我来说,它并不适用于上述任何浏览器。 (Chrome,Firefox,IE11) –