当前位置: 首页 > 知识库问答 >
问题:

拖放不适用于无头chromedriver

狄易安
2023-03-14

我正在使用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驱动程序中执行时不会发生任何情况。但是,在非无头chrome驱动程序中,这可以正常工作并执行拖放。

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

共有1个答案

卫甫
2023-03-14

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

建议:

  1. 用html代码创建一个最小的测试,你可以用它来证明dragAndDrop只在无头的情况下失败,并将其公开发布
  2. 之后创建一个chromium bug:https://www.chromium.org/for-testers/bug-reporting-guidelines
  3. 从无标题邮件列表中寻求支持,链接到您的失败测试示例:https://groups.google.com/a/chromium.org/forum/#!论坛/无头开发

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

 类似资料:
  • 我试图使用HTML5拖放在我的网站。dragstart和dragend被解雇,但dragenter,draglet,dragover和下降不工作,直到我刷新页面。 侧边栏中树中的节点应该能够拖动到表中的单元格。树是用jsTree制作的。我已经在火狐、Chrome和IE上尝试过了。他们都有相同的行为。 边栏树(rhtml文件) 删除操作代码(咖啡脚本文件) 表(页面来源) 我试着拉小提琴,但效果很好

  • 拖放操作不适用于selenium 3.8。 下面是该元素的JS代码 这就是我尝试过的。但这只是选择元素。保持和放弃是不会发生的。 我也试过这个。 也尝试过机器人。每次我只能看到源元素和目标元素都被选中。但不是被拖拽掉的。 还尝试了dragAndDrop ActionsChain。那也没用。

  • 在安装了最新浏览器的情况下使用Selenium w/Java绑定和ChromeDriver 2.3 在花了足够多的时间试图找到一个解决方案后,我现在被难倒了。我正在尝试将一个元素拖放到另一个元素。唯一需要注意的是,我需要移动到的元素目标只有在移动源元素后才可见。有什么建议吗? 因此,这里是我点击并按住的源元素的屏幕截图,然后拖动它,我也可以删除两个选项: 元素是源 因此,当我按住鼠标并拖动一小部分

  • > 拖放Selenium (选项1) 选项2 行为单击并按住(源)。暂停(2000年)。移动到元素(目标)。释放()。build()。执行(); 我尝试过这两种选择,我正在开发Selenium 3,有没有其他方法可以实现它。 注:不建议使用机器人类

  • 我有一个受保护的Web API正在运行,我想访问它。在Azure中,应用注册是: 具有Web API租户管理员权限的SPA Web API没有租户管理员权限,因此请求其id的令牌将返回“应用需要访问资源的权限”错误 我正在尝试获取Web API的承载令牌。问题是它不适用于MSAL,但适用于ADAL。 以下是我的“SPA”的ADAL vanilla JS代码: 如果我在“邮递员”中复制令牌并执行请求

  • 作为一个初学者,我试图创建一个模式,一旦点击共享按钮就会显示出来,但我似乎不知道为什么onclick函数没有执行,想法是,一旦点击共享按钮,就会显示:none;将更改为display:block,所以要么style.display=“block”有问题,要么(更有可能的是)我很烂。感谢任何帮助。谢谢你之前。 HTML代码: CSS代码: Javascript代码: