1

在系統測試過程中使用夜燈和硒,我試圖拖放,這是通過Knockout-draggable完成的。它在手動使用時100%有效。這是從中應該拖放一個可拖動的盒系統測試的代碼:Drag&Dropping在Nightwatch + Selenium中不起作用

this.moveToElement('@box', 0, 0); 
c.mouseButtonDown(0); 
this.moveToElement('@box2', 0, 40); 
c.mouseButtonUp(0); 

this是所述頁(其中的xpath元件)和c爲客戶端。

但是,這似乎甚至不能移動第二個盒子(大約40個像素高)下的盒子。是的,我嘗試了不同的號碼,甚至沒有把箱子拖到任何地方。在Firefox中完成。

是的,@box@box2都在工作xpaths。我一直在使用這些爲一些其他測試一段時間。

+0

我試圖使用這個庫:https://github.com/Kuniwak/html-dnd 但它似乎不適合我,你可以在你的項目中嘗試這個 – Hikaryu

回答

1

如何把c.mouseButtonDown(0);this.moveToElement('@box2', 0, 40);

0

之間的停頓我做了一個customCommand此問題。它的工作沒有問題

module.exports.command = function (LocatorFrom, LocatorTo, callback) { 

    var self = this; 

    this 
    .getLocation(LocatorTo, function (result) { 
     let xto = result.value.x; 
     let yto = result.value.y; 

     this.moveToElement(LocatorFrom, 10, 10) 
     .mouseButtonDown(0) 
     .pause(2000) 
     .moveToElement(LocatorTo, xto, yto) 
     .pause(2000) 
     .mouseButtonUp(0); 
     return this; 
    }); 



    return this; 
}; 
0

你必須嘗試這個,你可以在Chrome,Firefox和IE中正常工作。

只是你必須安裝 「HTML-DND」 使用NPM,以及這是一個鏈接 -
https://www.npmjs.com/package/html-dnd

安裝完成後,你只需要執行以下命令:
browser.execute(dragAndDrop, ['#draggable', '#droppable']);

對於例如:
browser.execute(dragAndDrop,['#elemendId1', '#elemendId2']).pause(2000);

希望這對您的測試用例能正常工作。