2013-07-15 2 views
0

Перетаскивание не работает, пожалуйста, приятель мне поможет.Невозможно выполнить функцию dragAndDrop в webdriver

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

Нет, ничего, webdriver успешно выполнен, но перетаскивание не выполняется. Вы также можете попробовать код выше. – Khan

ответ

0

Возможно, вы не используете WebDriver, возвращенный с вашего драйвера.switchTo(). Frame().

Попробуйте это:

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?

+0

после переключения на iframe, я не могу успешно распечатать содержимое кадра. Но не в состоянии выбрать и отбросить изображение. – Khan

+0

Это означает, что вы неправильно переключаетесь. Вы пробовали мой код, где вы назначили driver.switchTo(). Frame() для нового WebDriver? В противном случае, действительно ли важно работать с фреймами? Почему бы просто не использовать содержимое рамки для начала? driver.get ("http://www.w3schools.com/html/tryhtml5_draganddrop.htm"); – joostschouten

+0

Я могу печатать на контент сейчас, но все же проблема с перетаскиванием изображения с вашим кодом. Ты пробовал ? – Khan

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); 
+0

Тест выполнен, но изображение не перемещается внутри коробки. – Khan

+0

@Khan Затем попробуйте использовать перемещение со смещением. –