拖放功能在Selenium WebDriver中的某些UI上不起作用?

时间:2015-08-18 13:29:37

标签: java selenium selenium-webdriver

我在一些示例用户界面上使用Selenium WebDriver的dragAndDrop()函数。

样本1)http://the-internet.herokuapp.com/drag_and_drop

    driver.get("http://the-internet.herokuapp.com/drag_and_drop");
    WebElement From = driver.findElement(By.id("column-a"));
    WebElement To = driver.findElement(By.id("column-b"));
    (new Actions(driver)).dragAndDrop(From, To).build().perform();

样本2)http://jqueryui.com/droppable/#default

    driver.get("http://jqueryui.com/droppable/#default");
    WebElement iFrame = driver.findElement(By.tagName("iframe"));
    driver.switchTo().frame(iFrame);
    WebElement From = driver.findElement(By.id("draggable"));
    WebElement To = driver.findElement(By.id("droppable"));
    (new Actions(driver)).dragAndDrop(From, To).build().perform();

我使用完全相同的API。但是,样本2运行良好,样本1只是不工作。在示例1中,鼠标似乎点击并保持空白空间而不是" From"元素,根本没有进一步的运动。

我已尝试在谷歌搜索中建议的其他操作,例如:

keydown().click().click().keyup() and

clickandhold().movetoelement().release()

关于样本1.但它们都不起作用。

可能是什么问题?有什么建议吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

希望下面的代码对你有帮助

公共类darganddropTest {

public static void main(String[] args) {

// TODO 自动生成的方法存根

System.setProperty("webdriver.chrome.driver","./chromedriver_win32/chromedriver.exe");

WebDriver 驱动程序 = new ChromeDriver();

driver.get("https://jqueryui.com/droppable/");

System.out.println(driver.findElements(By.tagName("iframe")).size());

driver.switchTo().frame(driver.findElement(By.className("demo-frame")));

driver.findElement(By.id("draggable")).click();

Actions a = new Actions(driver);

WebElement drag = driver.findElement(By.id("draggable"));

WebElement drop = driver.findElement(By.id("droppable"));

a.dragAndDrop(drag, drop).build().perform();

driver.switchTo().defaultContent();

}

}