Selenium:使用Java Robot或Action拖放元素

时间:2015-08-02 15:07:09

标签: java selenium action awtrobot

作为我的Selenium WebDriver测试的一部分,我需要拖动一些HTML元素,将其移动到某个位置并在那里删除(释放)。
我尝试了以下代码:

1)使用Action

     Action rotateText = builder.clickAndHold(textRotator)  
             .moveByOffset(xRotatorOffset, yRotatorOffset)  
             .release(textRotator)  
             .build();  
     rotateText.perform();  

textRotator是我试图拖动和移动的元素 对于此处显示的代码,元素将移动到所需位置,但在应用release操作时立即返回到原始位置。
如果省略.release(textRotator)部分 - 元素留在所需位置但未释放,则每次鼠标移动都会影响元素位置并将其带到绝对不需要的位置。

2)Robot

robot.mouseMove(textRotatorPoint);  //The element I want to drag and move  
robot.mousePress(InputEvent.BUTTON1_MASK);  
robot.mouseMove(xTextOffset,yTextOffset);  // the new location I want to move the element to  
robot.mouseRelease(InputEvent.BUTTON1_MASK);  

在这种情况下,鼠标被扔到网页左上角附近的某个奇怪位置,在我正在使用区域的框架之外。
所需的元素不会移动到任何地方......
更新:与此同时,我通过添加.click()找到了第一个代码的一些解决方法。现在它看起来

     Action rotateText = builder.clickAndHold(textRotator)  
             .moveByOffset(xRotatorOffset, yRotatorOffset)  
             .click()                
             .release(textRotator)  
             .build();  
     rotateText.perform();  

它有效。 现在我的问题是:这是Action执行此操作的唯一方法,以及如何使用robot执行此操作

0 个答案:

没有答案