0

拖放不起作用,请一些伙伴帮助我。

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();
4

2 回答 2

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 内容吗?

于 2013-07-15T10:42:46.907 回答
0

运行此代码后,您可以观看测试通过;但是,它对我们来说是不可见的。实际上,拖放操作执行成功。

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);
于 2013-07-15T11:27:35.313 回答