2015-06-18 51 views
1

我有一個問題,我不能dragAndDrop元素。 這個元素是由jquery在Angular Directive中的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(){ 
 

 
    }); 
 

 

 
});

是necesary調用測試本地jQuery的事件?

此外一步一步調試,元素存在,點擊是好的,鼠標是好的... DragAndDrope sentecence是好的,但不能在網站上拖放。

+1

你的問題還不清楚。這個代碼沒有測試('describe','it','expect' ......)。你在測試哪個瀏覽器?你有錯誤信息嗎? 'browser.actions()'應該像你使用它一樣工作,但你也可以看看'.dragAndDrop()'包裝器:https://github.com/angular/protractor/blob/6ebc4c3f8b557a56e53e0a1622d1b44b59f5bc04/spec/basic/ actions_spec.js#L12 – glepretre

+0

你好,這部分代碼在它的編號 – 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