2017-01-12 62 views
2

我的公司有一个新的应用程序,它包含拖放。拖放是通过Dragula库完成的。WebDriver拖放应用程序使用Dragula

我试图自动执行此功能,但我没有任何运气。我已经尝试了两种内置DragAndDrop()方法的WebDriver(我的理解是它通常不能很好地与现代Web技术一起使用)。我尝试构建自己的拖放操作。我也试着在javascript执行器中使用jquery。这两种方法都没有奏效。

任何人有任何建议吗?

+0

我在这里找到了一个工作:https://github.com/bevacqua/angular-dragula/issues/86然而这不起作用,因为我们不能暴露我们的Dragula方法。 – Andrio

+1

你是什么意思,你不能暴露你的Dragula方法?请提供[MCVE] –

+0

@JeremyThompson Dragula对象是在一个函数中创建的。为了解决这个问题,它需要一个全局范围。根据我们的开发人员,这是不可行的。 – Andrio

回答

0

如果DragAndDrop()方法不为你工作,可以从Actions

IWebElement source; 
IWebElement target; 

Actions actions = new Actions(driver); 
actions.ClickAndHold(source).Perform(); 
actions.MoveByOffset(target.Location.X - source.Location.X, target.Location.Y - source.Location.Y).Perform(); 
actions.Release(target).Perform(); 

此建立自己的使用其他方法将垂直和水平滚动。

+0

感谢您的建议,但Actions类也失败了。 – Andrio