首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖放不适用于无头色驱动器。

问拖放不适用于无头色驱动器。
EN

Stack Exchange QA用户
提问于 2018-08-24 03:45:31
回答 2查看 1.3K关注 0票数 3

我正在使用Selenium和Java自动执行拖放操作。下面是在无头模式下使用铬驱动程序执行拖放的代码。

代码语言:javascript
复制
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();

在无头镀铬驱动程序中执行此操作时,不会发生任何事情。然而,在无头镀铬驱动器,这工作很好,拖放是执行.

注-尝试使用dragAndDropBy(源,目标)和dragAndDropBy(源,xOffset,yOffset)。这两种方法都不适用于无头镀铬。

EN

回答 2

Stack Exchange QA用户

发布于 2018-08-24 12:16:44

我不认为我们能帮你调试Chrome浏览器和无头版之间的区别。我不认为这是一个已知的问题,也没有已知的工作。

一项建议:

  1. 用HTML代码创建一个最小的测试,您可以用它来证明dragAndDrop失败是无头的,公开发布它。
  2. 然后创建一个铬缺陷:https://www.chromium.org/for-testers/bug-reporting-guidelines
  3. 从无头邮件列表中请求支持,链接到您的示例失败测试:https://groups.google.com/a/chromium.org/forum/#!forum/headless-dev

也许在创建最小测试的过程中,您会发现它为什么会起作用,但并不适用于您的具体情况。应用程序的行为不同,而不是浏览器:)

票数 1
EN

Stack Exchange QA用户

发布于 2018-08-24 05:10:36

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

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

与其他硒驱动程序相反,比如selenium-chromedriver,在这种驱动程序中,您的示例应该很好。

但是,如果您仍然需要它来进行无头web测试,那么可以使用PhantomJS。是的,它主要用于JS测试,但是有一个很棒的项目叫做Ghost驱动程序(在简单的PhantomJS JS中实现Webdriver协议),它支持Java和Selenium。

票数 -1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/35341

复制
相关文章

相似问题

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