无法将元素从1 div拖放到另一个div元素

时间:2014-11-26 05:33:54

标签: selenium selenium-webdriver selenium-grid

我一直试图从一个div(下面)

拖动一个元素
<article class="media-gallery-item mg-html5">
    <div class="mg-thumbnail" draggable="true" data-popcorn-plugin-type="sequencer" data-butter-draggable-type="plugin" data-butter-popcorn-options="{"source":"some_url","thumbnail":"some_url","start":0,"end":10,"from":0,"title":"bdgxkvtbs1.mp4","duration":2.83,"hidden":false,"asset_id":"1457","asset_width":"1280","asset_height":"720","asset_name":"video1.MOV","soundeffects":0}" >
        <img src="some_url">

进入另一个div

<div class="butter-track" data-butter-track-id="1"></div>

用于放置我们需要的元素也可以使用像素值。

我尝试了下面的代码,但它没有将元素拖到div中。我甚至看不到它在运行时拖动元素。

WebElement src = driver.findElementBy(By.xpath(".//div[@class='mg-thumbnail']"));
WebElement dest = driver.findElementBy(By.xpath(".//div[@class='butter-track']"));
Actions act = new Action();
act.clickAndHold(src).moveByoffset(src, 0,300).release().build().perform();

我也尝试过使用:

act.clickAndHold(src).dragAndDrop(src, dest).build().perform();

但没有人放弃这个元素。 (我也看不到在运行时拖动元素)

注意 - 代码适用于我之前使用的拖放操作,但在这里我将元素从1 div拖到另一个div,这可能会产生问题。

2 个答案:

答案 0 :(得分:0)

@pranky301:这是您代码中的轻微修改。 请尝试这个,让我知道会发生什么

WebElement src = driver.findElementBy(By.xpath(".//div[@class='mg-thumbnail']"));
WebElement dest = driver.findElementBy(By.xpath(".//div[@class='butter-track']"));
Actions builder = new Actions(driver);
Action drag = builder.clickAndHold(Src).moveToElement(dest).release(dest).build( );
drag.perform( );

答案 1 :(得分:0)

将项目从一个元素拖放到另一个元素时,这两种方法以前对我有用:

WebElement src = driver.findElement(...);
WebElement dest = driver.findElement(...);

new Actions(driver).dragAndDrop(src, dest).build().perform();

或坐标:

new Actions(driver).dragAndDropBy(src, "xOffset", "yOffset").build().perform();