使用同一目标中的拖放功能对WebElement重新排序

时间:2018-09-10 17:02:48

标签: java selenium

  

场景:通过拖放执行元素重新排序。

在同一<tr> -- draggable下存在多个元素(<table>) 为了重新排序,我需要将第二个元素table tr:nth-child(2)拖放到第一条tr上。

enter image description here

我无法做到这一点。

到目前为止编写的代码:

@FindBy(id = "#GridView_pptasks")
protected WebElement reorderDestination;

@FindBy(css = "#GridView_pptasks > tbody > tr:nth-child(2)")
protected WebElement reorderElement;

-------------------------------------------------------------------

Actions act = new Actions(driver);
act.dragAndDrop(reorderElement, reorderDestination).build().perform();

2 个答案:

答案 0 :(得分:0)

使用以下代码:

Actions action= new Actions(driver);
action.clickAndHold(reorderElement).build().perform();
Thread.sleep(2000);
action.clickAndHold().moveToElement(reorderDestination).release(reorderDestination).build().perform();

答案 1 :(得分:0)

如果这是通过HTML 5拖放实现的,则将无法使用Selenium自动进行。 Selenium不支持此问题。

但是,您可以使用Javascript执行来解决此问题; http://elementalselenium.com/tips/39-drag-and-drop

通常,在使用Selenium测试应用程序时,我非常反对执行Javascript,但是在这种情况下,别无选择