场景:通过拖放执行元素重新排序。
在同一<tr> -- draggable
下存在多个元素(<table>
)
为了重新排序,我需要将第二个元素table tr:nth-child(2)
拖放到第一条tr上。
我无法做到这一点。
到目前为止编写的代码:
@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();
答案 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,但是在这种情况下,别无选择