我正在使用selenium java在html5中拖放问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在使用selenium java在html5中拖放问题相关的知识,希望对你有一定的参考价值。

我是java和selenium的新手。我在html5中遇到dragAndDrop的问题。你能帮我么?

我正在使用的代码是:

public static void draganddrop(WebDriver driver ,WebElement Source, WebElement Destination) 
  {

  Actions action = new Actions(driver);
  action.dragAndDrop(Source, Destination).build().perform();

  }

<li data-ng-repeat="item in questionType" id="divDrag0" class="ng-scope"> 
<!-- ngIf: !isSurveyStarted || (isSurveyStarted && !isSurveyLock) -->
  <a data-ng-if="!isSurveyStarted || (isSurveyStarted &amp;&amp; !isSurveyLock)" href="javascript:void(0)" draggable="true" id="1" class="ng-binding ng-scope">Single Choice </a>
<!-- end ngIf: !isSurveyStarted || (isSurveyStarted && !isSurveyLock) --> 
<!-- ngIf: isSurveyStarted && isSurveyLock --> </li>
答案

这是Selenium和Html5尚未解决的老问题;但有一个解决方案,你可以在这里找到(信贷rcorreia):https://gist.github.com/rcorreia/2362544#file-drag_and_drop_helper-js

只需执行js文件js.ExecuteScript(jsfile + "$('#[sourceElement]').simulateDragDrop({dropTarget: '#[targetElement]'})");

另一答案

通过drag and drop界面试用我的Actions版本

new Actions(driver)
    .moveToElement(source)
    .pause(Duration.ofSeconds(1))
    .clickAndHold(source)
    .pause(Duration.ofSeconds(1))
    .moveByOffset(1, 0)
    .moveToElement(destination)
    .moveByOffset(1, 0)
    .pause(Duration.ofSeconds(1))
    .release().perform();

在我的应用程序中,当我clickAndHold目标元素发生变化时。这就是我添加暂停的原因。

以上是关于我正在使用selenium java在html5中拖放问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Selenium Webdriver 中模拟 HTML5 拖放?

如何使用 Selenium 从 HTML5 数据列表中进行选择

Selenium:在 Java 中使用 cssSelector 提取 div 的文本

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?

在 Java 中使用 Selenium 接受 cookie

使用 Java 在 Selenium WebDriver (selenium 2) 中处理警报