Selenium webdriver 无法使用Selenium Webdriver将元素拖放到另一个元素

Selenium webdriver 无法使用Selenium Webdriver将元素拖放到另一个元素,selenium-webdriver,drag-and-drop,Selenium Webdriver,Drag And Drop,我正在为以下拖放功能编写演示测试。[请参阅附带的屏幕截图] 为此,我编写了以下代码: @Test public void DragAndDropTest() { commonSteps(); WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]")); W

我正在为以下拖放功能编写演示测试。[请参阅附带的屏幕截图] 为此,我编写了以下代码:

 @Test
    public void DragAndDropTest() {  
      commonSteps();
      WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]"));
      WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]"));
      Actions builder = new Actions(driver);
      Action dragAndDrop = builder.clickAndHold(drag).moveToElement(drop).release(drop).build();
      dragAndDrop.perform();
  }
Webelement拖放用于“立即”,Webelement拖放用于“快速按下”

我的代码能够找到这些元素,但不会将“立即”帧拖放到“快速按下”帧

我还试着点击拖动,但点击也不起作用。我认为这些是JQuery的可折叠拖放面板。那么,如何使用webdriver处理可折叠拖放

为了实现这一点,我应该在代码中做哪些更改

这对我有用


这对我很有用。

我们可以直接使用动作来拖放,而不是单击并按住

在爪哇

            WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]"));
      WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]"));
      Actions builder = new Actions(driver);
      builder.dragAndDrop(drag, drop).build().perform();

      //or we can drop by x and y coordinates 

      builder.dragAndDropBy(drag, 20, 0).build().perform();

我们可以直接使用操作进行拖放,而不是单击并按住

在爪哇

            WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]"));
      WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]"));
      Actions builder = new Actions(driver);
      builder.dragAndDrop(drag, drop).build().perform();

      //or we can drop by x and y coordinates 

      builder.dragAndDropBy(drag, 20, 0).build().perform();
请在下面试试

使用键盘操作:

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();
请在下面试试

使用键盘操作:

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();