Java htmlunit驱动程序-如何模拟拖放?

Java htmlunit驱动程序-如何模拟拖放?,java,selenium,drag-and-drop,htmlunit-driver,selenium-chromedriver,Java,Selenium,Drag And Drop,Htmlunit Driver,Selenium Chromedriver,有没有办法用htmlunit驱动程序模拟拖放 使用时,它会抛出一个不支持的异常 课堂内: 我尝试这样做的尝试: 第一次尝试 (new Actions(driver)).dragAndDropBy(sliderHandle, 50, 0) .build() .perform(); (new Actions(driver)).moveToElement(sliderHandle)

有没有办法用
htmlunit驱动程序模拟拖放

使用时,它会抛出一个
不支持的异常

课堂内:

我尝试这样做的尝试:

第一次尝试

(new Actions(driver)).dragAndDropBy(sliderHandle, 50, 0)
                     .build()
                     .perform();
(new Actions(driver)).moveToElement(sliderHandle)
                     .clickAndHold()
                     .moveToElement(sliderHandle, 50, 0)
                     .release()
                     .build()
                     .perform();
第二次尝试

(new Actions(driver)).dragAndDropBy(sliderHandle, 50, 0)
                     .build()
                     .perform();
(new Actions(driver)).moveToElement(sliderHandle)
                     .clickAndHold()
                     .moveToElement(sliderHandle, 50, 0)
                     .release()
                     .build()
                     .perform();
有解决方法吗?

是一种针对Java程序的无GUI浏览器,可以为我们做很多事情,但不是所有事情。而且,正如您所注意到的,它不支持拖放等操作

new UnsupportedOperationException("Moving to arbitrary X,Y coordinates not supported.");
与其他Selenium驱动程序相反,例如,在其中一个驱动程序中,您的示例应该运行良好

但是,如果您仍然需要它来进行无头web测试,则可以使用。是的,它专注于JS测试,但是有一个伟大的项目叫做(PhantomJS的简单JS中Webdriver Wire协议的实现),它支持Java绑定和Selenium API

使用它的步骤非常简单:

  • 并将可执行文件正确地添加到
    PATH
    env变量中
  • 将Maven依赖项添加到pom.xml(以及Selenium libs:
    Selenium java
    Selenium support
    ):


  • 最终输出:

    x: 8, y: 8
    x: 58, y: 8
    

    我已将测试切换到现在使用PhantomJSDriver。使用PhantomJSDriver的唯一缺点是,它要求在运行测试的计算机上安装PhantomJS,而HtmlUnit one没有这一要求。是的,这是您应该具备的耦合。但是,正如我所说的,它不是银弹,它有基于不同方法的局限性。我建议你看看这些:谢谢你提供的信息。目前,我已经通过使用测试的概要文件和类别来解决phantomjs需求的问题。(并在构建服务器上为phantomjs的概要文件添加构建步骤。)
    x: 8, y: 8
    x: 58, y: 8