我编写了以下代码,但未找到该元素。该网站的链接是http://plugnedit.com/。
我尝试了各种方法来定位页面上的元素以尝试拖动对象。它不起作用。我收到“无法找到元素”错误。
我正在使用firefox。
感谢。
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();
}
答案 0 :(得分: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();
}