Java 拖放不适用于无头chromedriver

Java 拖放不适用于无头chromedriver,java,drag-and-drop,selenium-chromedriver,headless-browser,Java,Drag And Drop,Selenium Chromedriver,Headless Browser,我正在使用Selenium和Java自动化拖放。以下是在无头模式下使用chrome驱动程序执行拖放的代码 Point classname = targetElement.getLocation(); int xcordi = classname.getX(); int ycordi = classname.getY(); Actions action = new Actions(driver); action.clickAndHold(sourceElement).moveByOffset(xc

我正在使用Selenium和Java自动化拖放。以下是在无头模式下使用chrome驱动程序执行拖放的代码

Point classname = targetElement.getLocation();
int xcordi = classname.getX();
int ycordi = classname.getY();
Actions action = new Actions(driver);
action.clickAndHold(sourceElement).moveByOffset(xcordi, ycordi).release(targetElement).build().perform();
在无头chrome驱动程序中执行此操作时不会发生任何事情。然而,在非无头铬合金驱动程序中,这可以很好地工作,并且可以执行拖放操作


注意-尝试使用dragAndDropBy(源、目标)和dragAndDropBy(源、xOffset、yOffset)。这两种方法在非无头chrome中都不起作用

我认为我们无法帮助您调试chrome浏览器与无头版本之间的差异。我不认为这是一个已知的问题,也没有已知的解决办法

建议:

  • 用html代码创建一个最小的测试,你可以用它来证明dragAndDrop只在无头的情况下失败,公开发布它
  • 之后创建一个chromium bug:
  • 从无标题邮件列表中寻求支持,链接到您的失败测试示例:
  • 也许在创建最小测试的过程中,您会明白为什么它会起作用,但不适用于您的特定情况。应用程序的行为与浏览器不同:)

    交叉发布: