0

我已经编写了以下代码,但找不到该元素。该网站的链接是http://plugnedit.com/

我尝试了各种方法来定位页面上的元素以尝试拖动对象。它不工作。我收到“无法找到元素”错误。

我正在使用火狐。

谢谢。

        driver.navigate().to("http://plugnedit.com/");
        Actions dragAndDrop = new Actions(driver);
        WebElement itemToDrag = driver.findElement(By.id("p1003upperspan"));

        // drag downwards
        int numberOfPixelsToDragTheScrollbarDown = 10;
        for (int i=10;i<150;i=i+numberOfPixelsToDragTheScrollbarDown){
            // this causes a gradual drag of the scroll bar, 10 units at a time
            dragAndDrop.moveToElement(itemToDrag).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();
        }
4

1 回答 1

0

由于您尝试拖放的元素存在于框架内,因此您需要先切换到包含该元素的框架,然后执行拖放功能。

从您的代码中,我能够确定您尝试拖动的图像是上面带有咖啡杯的图像。该图像出现在网页的第一帧中。

所以我在拖放代码之前添加了以下单行代码。

driver.switchTo().frame(0); 

//这里的框架不包含任何名称。所以我使用了索引。这里frame(0)表示第一帧标签。

有效 !使用此代码。

driver.navigate().to("http://plugnedit.com/");

     driver.switchTo().frame(0);
        Actions dragAndDrop = new Actions(driver);
        WebElement itemToDrag = driver.findElement(By.id("p1003upperspan"));

        // drag downwards
        int numberOfPixelsToDragTheScrollbarDown = 10;
        for (int i=10;i<150;i=i+numberOfPixelsToDragTheScrollbarDown){
            // this causes a gradual drag of the scroll bar, 10 units at a time
            dragAndDrop.moveToElement(itemToDrag).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();
        }
于 2013-03-10T19:21:23.703 回答