首页 > 解决方案 > dragAndDropBy()、dragAndDrop()、moveToElement 等的行为非常奇怪

问题描述

不确定这是否是由于应用程序即时自动化设置了其 UI,但我试图做的是打开一个包含几行表格的侧抽屉。我需要将表格行拖到另一个特定区域并将其放在那里以移动它。所以这里有一个界面是什么样子的想法:

图片

注意:所有空格都不是删除表格行的有效区域,表格行只能在非常特定的区域中删除,当表格行位于其正上方时,该区域变得可见。我试图将右侧抽屉上的物品拖到左侧。

当我尝试使用 dragAndDropBy 移动到各自的 x 和 y 偏移时,它看起来好像没有移动到正确的位置。

我现在已经修改了我的代码,至少可以帮助我看看出了什么问题,而且它似乎没有移动到下面我的代码中设置的 x 坐标:

        Actions actions = new Actions(driver);      
        System.out.println(productArrangement.getLocation());
        actions.clickAndHold(productArrangement).moveByOffset(-408, 308).perform();
        System.out.println(productArrangement.getLocation());
        Thread.sleep(4000);
        

正如你们所看到的,目前正在尝试做的所有事情是查看我的元素也被移动到了哪里,并记录元素是否实际移动到相应的方向,并且它似乎没有在 x 坐标处移动并且正在移动在错误的 Y 坐标处(但至少它在移动)。

这是我的控制台 坐标

我希望第二个坐标日志已经移动到我输入的指定偏移量,但是到目前为止我尝试过的所有方法都得到了类似的行为。请告知帮助将不胜感激。

标签: javaseleniumautomationdrag-and-dropwebdriver

解决方案


使用直接 dargAndDrop 方法,如下所示:

Actions actions = new Actions(driver);
actions.dragAndDropBy(productArrangement,-408, 308).perform();

推荐阅读