使用 Dragula 在应用程序中拖放 WebDriver

Posted

技术标签:

【中文标题】使用 Dragula 在应用程序中拖放 WebDriver【英文标题】:WebDriver Drag and Drop in application using Dragula 【发布时间】:2017-05-28 02:19:09 【问题描述】:

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

我正在尝试自动化此功能,但我没有任何运气。我已经尝试过 WebDriver 内置的 DragAndDrop() 方法(我的理解是它通常不适用于现代网络技术)。我尝试使用操作构建自己的拖放操作。而且我还尝试在 javascript 执行程序中使用 jquery。这两种方法都没有奏效。

有人有什么建议吗?

【问题讨论】:

我在这里找到了一个解决方法:github.com/bevacqua/angular-dragula/issues/86 但是这不起作用,因为我们不能公开我们的 Dragula 方法。 你的意思是你不能公开你的 Dragula 方法?请提供minimal reproducible example @JeremyThompson Dragula 对象是在函数中创建的。要使该解决方法起作用,它需要具有全局范围。根据我们的开发人员的说法,这是不可行的。 @Andrio 你找到解决方法了吗?当我遇到类似问题时,如果您发现任何问题,请更新答案? @swathi 对不起,我从来没有找到解决办法。我们最终决定让开发人员实施一项解决拖放问题的工作。 【参考方案1】:

如果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();

这将垂直和水平滚动。

【讨论】:

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

以上是关于使用 Dragula 在应用程序中拖放 WebDriver的主要内容,如果未能解决你的问题,请参考以下文章

Ng-click 不起作用 Dragula 拖放元素

角度多重拖放(ng2-dragula)

需要在icarousel中拖放视图

在 UITextView 中拖放时显示文本光标

在没有 MFC 的 Visual Studio 中拖放 UI 设计器?

在winforms或wpf中拖放