拖放不起作用,请一些好友帮帮我。
driver.get("http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop");
Actions builder = new Actions(driver);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.switchTo().frame(driver.findElement(By.className("result_output")));
System.out.println(driver.findElement(By.tagName("body")).getText());
Action dropImage = builder.dragAndDrop(driver.findElement(By.id("drag1")), driver.findElement(By.id("div1"))).build();
dropImage.perform();
答案 0 :(得分:0)
您似乎没有使用从driver.switchTo()。frame()返回的WebDriver。
试试这个:
driver.get("http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebDriver frameDriver = driver.switchTo().frame(driver.findElement(By.className("result_output")));
Actions builder = new Actions(frameDriver);
Action dropImage = builder.dragAndDrop(frameDriver.findElement(By.id("drag1")), frameDriver.findElement(By.id("div1"))).build();
dropImage.perform();
PS:这可能不是你的问题:“不工作”不够描述。怎么了?你看到了什么?堆栈跟踪?错误信息?你的输出是多少?你真的得到了iframe的内容吗?
答案 1 :(得分:0)
运行此代码后,您可以观察测试通过;但是,我们看不到它。 实际上,拖拽和drop操作成功执行。
Actions builder = new Actions(driver);
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[id='iframeResult']")));
Action dragAndDrop = builder.clickAndHold(driver.findElement(By.id("drag1")))
.moveToElement(driver.findElement(By.id("div1")))
.release(driver.findElement(By.id("div1")))
.build();
dragAndDrop.perform();
Thread.sleep(5000);