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

如何使用Selenium webdriver 3进行拖动,其中要拖动的基础元素是标记

宣冥夜
2023-03-14

我正在使用Selenium3与Java,Cucumber和ChromeDriver。我试图从一个img元素拖动,但硒不允许转移焦点到该元素,以便拖放。下面的选项我都试过了。求求你了。如果有人能帮忙请告诉我。

使用键盘操作:

Actions builder = new Actions(driver);
builder.keyDown(Keys.CONTROL).click(someElement).click(someOtherElement).        keyUp(Keys.CONTROL).build().perform();
Actions builder = new Actions(driver);
builder.clickAndHold(someElement).moveToElement(otherElement).release( otherElement).build().perform();
public String dragElementFrom="//div[@class='asset-instructions col-xs-6']/div[5]/div/ul/li[1]/div/img";
public String dragElementTo="//*[@id='parity-on-page-preview']";
 Point coordinates1 = e.getLocation();
 Point coordinates2 = f.getLocation();
 Robot robot = new Robot();

 robot.mouseMove(coordinates1.getX()+55, coordinates1.getY()+118);
 robot.mousePress(InputEvent.BUTTON1_MASK);
 robot.mouseMove(coordinates2.getX()+200, coordinates2.getY()+200);
 robot.mouseRelease(InputEvent.BUTTON1_MASK);
 Thread.sleep(2000);

我也试过使用火狐,但它是一样的。此外,我也研究了stackoverflow,但在任何地方都找不到我的答案。

共有1个答案

谷梁浩思
2023-03-14

如果我没有理解错,Selenium3不支持HTML5的拖放。他们正在研究:https://github.com/seleniumhq/selenium/issues/2285有一些基于javascript的解决方案,但它们并不总是起作用。

 类似资料:
  • 我正在使用本机拖放html5 api开发拖放界面。我们已经在其他部分使用了jQuery拖动,但是它在这个特定部分的表现很差,所以我们使用原始的JavaScript。 本质上,标记看起来像这样... 我为“dragstart”创建一个addEventListener并运行以下函数 它将我的类完美地应用于原始元素,但我似乎不能移动原始元素。浏览器创建克隆/幽灵图像...我看到你可以创建自己的图像显示,

  • 本文向大家介绍jQuery拖动元素并对元素进行重新排序,包括了jQuery拖动元素并对元素进行重新排序的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery拖动元素并对元素进行重新排序的实现方法,分享给大家供大家参考,具体实现内容如下 效果图: 具体内容如下: 从上图可以看出我们今天要实现的功能。当用户拖动一个图片时,就能改变图片的已有排序并更新表中的排列顺序。比如用户可以随意拖动我

  • 编辑2:在仔细阅读了jquery-ui的源代码,并充分理解了其原理后,我制作出了能够符合我的需求的代码:能够在旋转后的父元素中使用jquery-ui的draggable功能以实现拖动子元素的效果。我希望能分享给大家,或许有其他人有着和我类似的需求,可以提供给您作为参考。 需要写在最前面强调的是,这个功能有一定的局限性,例如旋转的父元素和拖拽的子元素必须都是position:absolute,并且一

  • 你好,堆栈溢出,目前正在处理一个需要拖动元素的任务;不是本机API所做的图像拖动,而是拖动实际的元素。元素应该显示一个要删除的位置框,并在将其拖过一个区域时更改其自身的内部内容,该区域将在删除时删除该元素。到目前为止,我发现了这个有用的指令,帮助我做到这一点https://xieziyu.github.io/angular2-draggable/#/usage/basic 问题是,一旦元素通过某个

  • 本文向大家介绍如何在Selenium中进行拖放动作?,包括了如何在Selenium中进行拖放动作?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助Actions类在Selenium中执行拖放动作。为了执行拖放运动,我们将使用dragAndDrop(源,目标)方法。最后,使用.perform()执行所有步骤。 示例

  • 在ListView中,我可以按下< kbd>Ctrl Shift并单击项目进行选择。但是,我想拖动鼠标来选择项目(如DataGridView)。我尝试了下面的代码,我遇到了这样的问题: 我的代码: