Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SeleniumWeb驱动程序进行拖放和排序测试_Java_Jquery_Selenium_Selenium Webdriver_Ui Automation - Fatal编程技术网

Java 使用SeleniumWeb驱动程序进行拖放和排序测试

Java 使用SeleniumWeb驱动程序进行拖放和排序测试,java,jquery,selenium,selenium-webdriver,ui-automation,Java,Jquery,Selenium,Selenium Webdriver,Ui Automation,我正在尝试自动化网页的UI。请找到下面网页的链接 在此网页中,我们有一个名为DragTable+Sortable的选项。单击DragTable+Sortable选项。此时会出现一个未排序的列表。可以拖动列表项,我们可以重新排列此列表的顺序 我写了一个代码来自动化这个。但我的代码部分工作正常。代码可以拖动元素,但无法将其放置在需要的位置。请在代码中查找步骤。 我正试着把其中一个放在列表的底部 WebElement drgnsort = dr.findElement(By.linkText("Dr

我正在尝试自动化网页的UI。请找到下面网页的链接

在此网页中,我们有一个名为DragTable+Sortable的选项。单击DragTable+Sortable选项。此时会出现一个未排序的列表。可以拖动列表项,我们可以重新排列此列表的顺序

我写了一个代码来自动化这个。但我的代码部分工作正常。代码可以拖动元素,但无法将其放置在需要的位置。请在代码中查找步骤。 我正试着把其中一个放在列表的底部

WebElement drgnsort = dr.findElement(By.linkText("Draggable + Sortable"));
        drgnsort.click();
        WebElement container = dr.findElement(By.id("sortablebox"));
        List<WebElement> lis = container.findElements(By.tagName("li"));
        WebElement one = lis.get(0);
        builder.clickAndHold(one).moveByOffset(0,200).release().perform();
WebElement drgnsort=dr.findElement(By.linkText(“Draggable+Sortable”);
drgnsort.click();
WebElement容器=dr.findElement(By.id(“sortablebox”);
List lis=container.findElements(按.tagName(“li”));
WebElement one=lis.get(0);
builder.clickAndHold(一个).moveByOffset(0200.release().perform();
尝试以下代码:

Actions action = new Actions(we);
    List<WebElement> list = we.findElements(By.cssSelector("#sortablebox li"));
    WebElement target = list.get(0);
    WebElement dest = list.get(3);
    action.click(target).clickAndHold().moveToElement(dest).moveByOffset(0, 10).release().build().perform();
Actions动作=新动作(we);
List List=we.findElements(By.cssSelector(“#sortablebox li”);
WebElement target=list.get(0);
WebElement dest=list.get(3);
action.click(目标).clickAndHold().moveToElement(目标).moveByOffset(0,10).release().build().perform();
其中“we”是WebDriver的实例。

您可以通过索引来识别未排序的列表,我们必须再移动元素一点,这就是我使用“moveByOffset(0,10)”的原因。

Actions类具有“dragAndDrop”功能。你应该考虑使用它,而不是重新创建轮子如果发生DragAndDrop,我无法确定目的地位置。整个无序列表位于一个div中,除了无序列表之外,没有其他元素。请让我知道,如果我不清楚,然后尝试“dragAndDropBy”,它允许您按像素移动。谢谢Pankaj。代码起作用。我只有一个问题。请你解释一下cssSelector(#sortablebox li)。它与查找ID为的未排序列表有何不同。我还可以知道如何使用ID获取“列表”(list)吗?ID在整个页面中是唯一的,但如果您有多个Web元素对应于选择器,则使用“we.findElement”而不是“we.findElement”。您将获得webelements的列表。另外,如果你觉得这个答案有帮助,请投票表决。谢谢