【问题标题】:Selenium drag and drop issueSelenium 拖放问题
【发布时间】:2020-09-29 08:00:32
【问题描述】:

我需要在我的网站中进行拖放操作。我已成功拖放我的元素,但我在删除我的元素时遇到了困难。

@Test (priority=8)
 public void openSectionArrow() throws InterruptedException {
          Thread.sleep(3000);
          driver.findElement(By.xpath("//*[@id=\"section-sortable\"]/div/div[1]/div[1]/span/a")).click();
          System.out.println("click on section arrow");
 }
    @Test (priority=8)
    public void dragDrop() throws InterruptedException {
          WebElement srcElement = driver.findElement(By.xpath("/html/body/app-root/app-wrapper/app-template-manager/div/main/div/app-home/div/div/div[2]/div/div[3]/div/div[1]/div[2]/div/div/div/div[1]/div/div[1]"));
          WebElement targetElement = driver.findElement(By.xpath("/html/body/app-root/app-wrapper/app-template-manager/div/main/div/app-home/div/div/div[2]/div/div[2]/div[2]/div[2]/div/div[1]/div/div[2]/div/div/div[1]/gridster/div[2]"));
          Actions builder = new Actions(driver);
          builder.clickAndHold(srcElement).perform(); 
          Thread.sleep(5000);
          builder.moveToElement(targetElement).release().build().perform();       
    }
   

【问题讨论】:

    标签: java selenium selenium-webdriver drag-and-drop testng


    【解决方案1】:

    请使用 JavascriptExecutor 尝试以下代码。

    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("function createEvent(typeOfEvent) { var event = document.createEvent(\"CustomEvent\"); event.initCustomEvent(typeOfEvent, true, true, null); event.dataTransfer = { data: {}, setData: function (key, value) { this.data[key] = value; }, getData: function (key) { return this.data[key]; } }; return event; } function dispatchEvent(element, event, transferData) { if (transferData !== undefined) { event.dataTransfer = transferData; } if (element.dispatchEvent) { element.dispatchEvent(event); } else if (element.fireEvent) { element.fireEvent(\"on\" + event.type, event); } } function simulateHTML5DragAndDrop(element, target) { var dragStartEvent = createEvent('dragstart'); dispatchEvent(element, dragStartEvent); var dropEvent = createEvent('drop'); dispatchEvent(target, dropEvent, dragStartEvent.dataTransfer); var dragEndEvent = createEvent('dragend'); dispatchEvent(element, dragEndEvent, dropEvent.dataTransfer); } var elementToDrag = arguments[0]; var target = arguments[1]; simulateHTML5DragAndDrop(elementToDrag, target);",
        srcElement, targetElement);
    

    【讨论】:

    • 能否分享一下测试网址。然后我可以从头开始复制它。
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多