t.me/atinfo_chat Telegram группа по автоматизации тестирования

Drag and drop элемента из одного фрейма в другой


(Jonny) #1

Здравствуйте!

Требуется реализовать drag and drop элемента из одного фрейма в другой.

Столкнулся с проблемой, а умеет ли вебдрайвер выполнять такое?

Выполнялось, к примеру, следущее:

driver.SwitchTo().Frame("Frame1"); var from = driver.FindElement(By.XPath("1")); driver.SwitchTo().Frame("Frame2"); var to = driver.FindElement(By.XPath("2"));

        Actions builder = new Actions(driver);
        var dragndrop = builder.DragAndDrop(from, to).Build();
        dragndrop.Perform();</code></p><p>Браузер ff3.6</p><p>Webdriver C#</p><p>

Заранее спасибо!

 


(Дмитрий Жарий) #2

Не простой кейс

 

Возможно, Вам поможет что-то из следующего топика:

DragDrop doesn't work with selenium?

 

 


(aspirin) #3

а для ФФ12 как dragAndDrop использовать?

а то

    Actions builder = new Actions(driver);
        Action dragAndDrop = builder.clickAndHold(LocatorFrom)
                .moveToElement(LocatorTo)
                .release(LocatorTo)
                .build();
        dragAndDrop.perform();

 

ни

                new Actions(driver).dragAndDrop(element, target).perform();
 

не работает

 

 


(Taras) #4

с фрейма в фрейм нужно релейтив ап делать при перетаскивании, думаю что залет именно в этом месте.


(aspirin) #5

а если все в одном фрейме, для хрома работает, а для фф и ие нет?


(Mykhailo Poliarush) #6

значит это может быть баг, вы пробовали на ФФ 11, например?


(aspirin) #7

и на 10 тоже(


(Mykhailo Poliarush) #8

у меня вот такой вот код нормально работает

 

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
d = webdriver.Firefox()
d.get("http://jqueryui.com/demos/droppable/default.html")
drag = d.find_element_by_id('draggable')
drop = d.find_element_by_id('droppable')
ActionChains(d).drag_and_drop(drag,drop).perform()

(aspirin) #9

на каком браузере и какая либа селика?


(Mykhailo Poliarush) #10

2.21.3 Selenium, Firefox 6


(aspirin) #11

поставил ФФ6,0,2

                driver = new FirefoxDriver();

 element = driver.findElement(By.id(sourceId));
 target = driver.findElement(By.id(tagetId));
 new Actions(driver).dragAndDrop(element, target).perform();

 

java.lang.AssertionError: dragAndDropToObject fails: Cannot perform native interaction: Could not load native events component.
Command duration or timeout: 5.13 seconds
Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:09:00'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_27-ea'
Driver info: driver.version: RemoteWebDriver


(Mykhailo Poliarush) #12

а я еще пробывал с версией, selenium 2.20.0 и ФФ 6, попробуйте запустить с ней.


(aspirin) #13

откатил на 2,20,0

не работает. пытается что-то сделать, выделяет текст на странице, но сам drag не срабатывает (

 

сделал

final FirefoxProfile profile = new FirefoxProfile();
                profile.setEnableNativeEvents(false);
                WebDriverEventListener eventListener = new MyEventListener();
                driver = new EventFiringWebDriver(new FirefoxDriver(profile)).register(eventListener);


(Mykhailo Poliarush) #14

одно из предположений, что именно с вашим приложением не может работать веб-драйвер

а попробуйте вот на этом сайте простой пример перетаскивания http://jqueryui.com/demos/droppable/default.html


(aspirin) #15

проблема в том, что в хроме отрабатывает на раз :(


(aspirin) #16

хреново,  http://jqueryui.com/demos/droppable/default.html тут работает ))))

значит дело скорее всего в моем приложении (, а это не есть гуд


(aspirin) #17

вроде понял, посмотрел как у нас сделано Ext

в примере http://jqueryui.com/demos/droppable/default.html  jquery

буду копать в ту степь


(Mykhailo Poliarush) #18

ну вот вам демо для Ext, попробуйте на нем

http://dev.sencha.com/deploy/ext-4.0.0/examples/dd/dnd_grid_to_grid.html


(Mykhailo Poliarush) #19

еще вариант, попробуйте отследить javascript ошибки
может быть при выполнении каких-то действий происходят javascript ошибки, которые не позволяют вам двигаться дальше.


(aspirin) #20

блин, еще лучше ( на этом примере работает ((. Тогда теряюсь в догадках. На странице ошибок нет