场景:通过拖放执行元素重新排序。
多个元素(<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();
发布于 2018-09-11 05:22:14
使用以下代码:
Actions action= new Actions(driver);
action.clickAndHold(reorderElement).build().perform();
Thread.sleep(2000);
action.clickAndHold().moveToElement(reorderDestination).release(reorderDestination).build().perform();
发布于 2018-09-11 12:15:19
如果这是用HTML 5拖放实现的,那么您将无法使用Selenium实现自动化。Selenium不支持这一点,这是众所周知的问题。
但是,您可以使用Javascript执行来解决这个问题;http://elementalselenium.com/tips/39-drag-and-drop
通常,在使用Selenium测试应用程序时,我非常反对Javascript执行,但在本例中没有其他选择。
https://stackoverflow.com/questions/52262429
复制相似问题