我在一些示例用户界面上使用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.但它们都不起作用。
可能是什么问题?有什么建议吗?
谢谢,
答案 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();
}
}