Làm cách nào để sử dụng tính năng không đồng bộ và đang chờ kiểm tra thước đo góc?Sử dụng async và chờ trong các thử nghiệm thước đo selenium
it('test async', function(){
var value = 0;
function asyncAction() {
return browser.driver.wait(()=>true)
.then(function() {
console.log('a');
return value++;
});
}
//-Problem Area-
async function doAwait(){
await asyncAction();
return asyncAction();
}
doAwait();
protractor.promise.controlFlow().execute(() => {
console.log('b');
expect(value).toBe(2);
});
});
đầu ra ở đây là
- một
- b
- một giá trị
và là 1 tại thời điểm mong đợi chức năng doAwait() { chờ asyncAction() ; trả về asyncAction(); }
Tôi thích nghĩ về điều này như tương tự như
function doAwait(){
asyncAction().then(()=>asyncAction());
}
Những công trình nhưng trên async doAwait không. Tôi tin rằng điều này là do máy phát điện phá vỡ ControlFlow của selen.
Bạn đã có điều này "Tôi tin rằng điều này là do máy phát điện phá vỡ ControlFlow của selen." – nilesh
Tôi rất tò mò muốn biết bạn đã thử nghiệm điều này như thế nào. IDE của tôi chỉ hỗ trợ cho đến khi ECMA 6 – nilesh
yêu cầu ('babel-register') ({ plugin: ['transform-async-to-generator'] }); – TrevDev