首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟拖放?

如何模拟拖放?
EN

Stack Overflow用户
提问于 2017-01-16 21:37:45
回答 1查看 546关注 0票数 1

有办法用htmlunit-driver模拟拖放吗?

当使用行为时,它抛出一个UnsupportedException

在类HtmlUnitMouse

代码语言:javascript
复制
  @Override
  public void mouseMove(Coordinates where, long xOffset, long yOffset) {
    throw new UnsupportedOperationException("Moving to arbitrary X,Y coordinates not supported.");
  }

我尝试这样做的尝试:

第一次尝试

代码语言:javascript
复制
(new Actions(driver)).dragAndDropBy(sliderHandle, 50, 0)
                     .build()
                     .perform();

第二次尝试

代码语言:javascript
复制
(new Actions(driver)).moveToElement(sliderHandle)
                     .clickAndHold()
                     .moveToElement(sliderHandle, 50, 0)
                     .release()
                     .build()
                     .perform();

有办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-21 14:34:59

HtmlUnit是一个用于Java程序的无GUI浏览器,它可以为我们做很多事情,但不是所有的东西。而且,正如您已经注意到的,它不支持诸如拖放之类的操作。

代码语言:javascript
复制
new UnsupportedOperationException("Moving to arbitrary X,Y coordinates not supported.");

与其他硒驱动程序相反,比如硒显色剂,您的示例应该工作得很好。

但是,如果您仍然需要它来进行无头web测试,那么可以使用PhantomJS。是的,它主要用于JS测试,但是有一个名为鬼司机的伟大项目(在简单的JS for PhantomJS中实现Webdriver协议),它支持Java和Selenium。

使用它的步骤非常简单:

  1. 在操作系统中安装PhantomJS并正确地将可执行文件添加到PATH env变量中。
  2. 将Maven依赖项添加到您的pom.xml (以及Selenium库:selenium-javaselenium-support): com.github.detro幻影驱动程序1.2.0
  3. 并调整您的代码以使用它: //设置此属性,以指定PhantomJS可执行文件将使用System.setProperty("phantomjs.binary.path",System.getenv("PHANTOM_JS") +“/bin/幻影js.exe”);//新PhantomJS驱动程序从幽灵驱动程序WebDriver驱动程序=新PhantomJSDriver();driver.get(“https://jqueryui.com/resources/demos/draggable/default.html"”);//查找拖放元素WebElement draggable = driver.findElement(By.id(" draggable "));System.out.println("x:+ draggable.getLocation().x + ",y:“+draggable.getLocation().y”);//执行拖放(新动作(驱动程序)).dragAndDropBy(拖放,50,0) .build() .perform();System.out.println("x:+ draggable.getLocation().x + ",y:“+draggable.getLocation().y”);

最后产出:

代码语言:javascript
复制
x: 8, y: 8
x: 58, y: 8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41685388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档