我有一个问题,我无法使用dragAndDrop元素。 这个元素是Angular Directive中jquery的dragAndDrop。 我使用Protractor 2.10和Selenium 2.45。 我尝试了很多种方式的dragAndDrop:
/**
*Draft dragAndDrop
*/
'use strict';
describe('DragAndDrop ', function() {
beforeEach(function() {
browser.get(browser.baseUrl);
browser.waitForAngular();
});
it('test', function(){
//var coordenadas = placaUno.getLocation();
var buttonStart = element(by.binding('landing-main-button-start')).click();
var placas= element(by.buttonText('Placas')).click();
//OK
//var placaUno = element.all(by.repeater('board in boards')).get(1);
//img placa to drag and drop
var placaUnoCSS = element(by.css('#hwtoolbox > div > ul > li:nth-child(1) > div.submenu-level > div > div > div:nth-child(1) > img'));
//space with drop placa
var espacioPlaca = element(by.css('#boardSchema'));
//First way -- not found
//browser.actions().mouseDown(placaUnoCSS).mouseMove(placaUnoCSS,espacioPlaca).mouseUp().perform()
//Second way -- not found
browser.actions()
.dragAndDrop(placaUnoCSS, espacioPlaca)
.perform();
//Third way -- not found
/*
browser.actions().dragAndDrop(
browser.findElement(by.css('#hwtoolbox > div > ul > li:nth-child(1) > div.submenu-level > div > div > div:nth-child(1) > img')),
browser.findElement(by.css('#protoboard-canvas'))).perform();
*/
browser.pause();
});
afterEach(function(){
});
});
是否需要在测试中调用本机Jquery事件?
此外,逐步调试,元素存在,单击即可,mouseDown正常... DragAndDrope sentecence可以,但不能在网站上拖放。
答案 0 :(得分:0)
var startDragEle = element(by.css(".imageToDrag"));
鉴于您正确选择了拖动开始和结束元素
browser.actions().dragAndDrop().perform();
应该有效: - )
如果你需要它,那么API:
https://code.google.com/p/selenium/source/browse/javascript/webdriver/actionsequence.js