2015-06-18 6 views
1

У меня проблема, я не могу использовать элемент dragAndDrop. Этот элемент является dragAndDrop от jquery в Angular Directive. Я использую Транспортир 2.10 и Селен 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(){ 
 

 
    }); 
 

 

 
});

Является ли necesary назвать нативный событие Jquery в тесте ?.

Кроме того, отладка шаг за шагом, элементы присутствуют, нажмите ОК, mouseDown это нормально ... DragAndDrope sentecence в порядке, но не перетаскивание на веб-сайте.

+1

Ваш вопрос остается неясным. В этом коде нет теста ('describe',' it', 'expect' ...). На каком браузере вы тестируете? Вы получили сообщение об ошибке? 'browser.actions()' должен работать так, как вы его использовали, но вы также можете просмотреть оболочку '.dragAndDrop()': https://github.com/angular/protractor/blob/6ebc4c3f8b557a56e53e0a1622d1b44b59f5bc04/spec/basic/ actions_spec.js # L12 – glepretre

+0

Привет, эта часть кода в ней statament – Luisangonzalez

+1

«Итак, что вы ожидали?» Вы должны добавить дополнительную информацию к своему вопросу;) – glepretre

ответ

0

сделайте мне одолжение и сэкономьте себе стресс, добавив разумно названный класс в ваш элемент placaUnoCSS. Тогда вы можете просто выбрать его, как вы знаете, с:

var startDragEle = element(by.css(".imageToDrag")); 

Учитывая, что вы правильно выбрать начало перетаскивания и конечный элемент

browser.actions().dragAndDrop().perform(); 

должен работать :-)

В случае вам это нужно вот API:

https://code.google.com/p/selenium/source/browse/javascript/webdriver/actionsequence.js

Смежные вопросы