如何正确模拟硒中的拖放
Posted
技术标签:
【中文标题】如何正确模拟硒中的拖放【英文标题】:How to properly simulate drag and drop in selenium 【发布时间】:2015-02-05 21:35:54 【问题描述】:我正在做一个执行拖放的测试。
我目前的代码:
WebElement element;
By mainSelector, secondarySelector;
Actions action;
action = new Actions(driver);
mainSelector = By.cssSelector("tbody.naam tr:nth-child(1) td:nth-child(1)");
secondarySelector = By.cssSelector("tbody.bedrijf tr:nth-child(1) td:nth-child(1)");
action.click(driver.findElement(mainSelector));
action.clickAndHold(driver.findElement(mainSelector))
.moveToElement(driver.findElement(secondarySelector), 5, 5)
.perform();
action.release(driver.findElement(secondarySelector));
action.perform();
action.dragAndDropBy(driver.findElement(mainSelector), 300, 300).perform();
action.dragAndDrop(driver.findElement(mainSelector), driver.findElement(secondarySelector)).perform();
但这并没有做任何事情。 我已经添加了多个执行,所以请确保这不是问题。 我添加了一个偏移量,因为我读到这有时是错误的。 我使用Firefox进行测试。
【问题讨论】:
请检查:***.com/questions/14210051/… 【参考方案1】:如果你想把mainSelector拖到secondarySelector,你可以这样做
Method 1
mainSelector = driver.findElement(By.cssSelector("tbody.naam tr:nth-child(1) td:nth-child(1)"));
secondarySelector = driver.findElement(By.cssSelector("tbody.bedrijf tr:nth-child(1) td:nth-child(1)"));
action = new Actions(driver)
action.dragAndDrop(mainSelector, secondarySelector).perform();
Method 2
action.clickAndHold(mainSelector).moveToElement(secondarySelector).release().build().perform();
这两种方法都可以完成任务。
希望对您有所帮助! :)
【讨论】:
dragAndDrop
函数只接受 WebElements 对吗?不是By
选择器?
我已将它添加到尝试列表中,但很遗憾,它对我不起作用。
@Funonly :你能展示你的完整实现吗?
@Rupesh 你的意思是javascript?以上是关于如何正确模拟硒中的拖放的主要内容,如果未能解决你的问题,请参考以下文章