2014-04-10 20 views
9

Tôi đang cố gắng kiểm tra ứng dụng của mình, nơi tôi cần di chuyển tiện ích từ vị trí này sang vị trí khác, nói cách khác tôi cần kiểm tra chức năng kéo &. kiểm tra.Làm thế nào để kiểm tra chức năng kéo và thả trong thử nghiệm AngularJS e2e

Tôi làm cách nào để kiểm tra điều này?

+2

Có xem https://github.com/angular/protractor/issues/123 và https://github.com/angular/protractor/commit/fb46ec9bcd568510248831f11d43d0e2398cc606 –

+0

@Nicolae Olariu liên kết (https://github.com/angular/protractor/commit/fb46ec9bcd568510248831f11d43d0e2398cc606) bạn đã cung cấp công việc cho tôi –

Trả lời

1

bạn sẽ cần phải chuỗi hành động chuột của bạn:

var yourOffset = {x:5,y:5}; 
ptor().actions(). 
    mouseMove(yourElement,yourOffset). 
    mouseDown(). 
    mouseMove(youTarget[,targetOffset]). // [] optional 
    mouseUp(). 
    perform(); 
0

Bạn có thể sử dụng ptor.actions().dragAndDrop(el1, el2).perform();

Tôi có một example đây từ các bộ kiểm tra trong ứng dụng của riêng tôi:

/** 
* Reorders questions by dragging and dropping. 
*/ 
this.moveQuestion = function (questionToMove, positionToMoveTo) { 
    return page.getQuestionField(positionToMoveTo).then(function (dest) { 
     page.getDragHandle(questionToMove).then(function (dragHandle) { 
      ptor.actions().dragAndDrop(dragHandle, dest).perform(); 
      ptor.sleep(800); // wait for animation 
     }); 
    }); 
}; 
4

tôi có cùng một vấn đề. Các giải pháp đối với tôi là làm theo những lời khuyên trong vấn đề Selenium ở đây: https://code.google.com/p/selenium/issues/detail?id=3604#c20

Bắt đầu với những ví dụ từ @nilsK, đây là giải pháp của tôi:

var yourOffset = {x:5,y:5}; 
ptor().actions() 
    .mouseMove(yourElement,yourOffset) 
    .mouseDown() 
    .mouseMove(yourElement,{x:0,y:0}) // Initial move to trigger drag start 
    .mouseMove(youTarget[,targetOffset]) // [] optional 
    .mouseUp() 
    .perform(); 

Tôi nghĩ rằng đây cũng giải quyết this issue

Các vấn đề liên quan