في الأسفل كما ترى أنه من المفترض أن يتم تنفيذ browser.sleep إذا كان العميل هو XYZ ، ولكن لا يزال لم يتم تنفيذه. إذا وضعت أي console.log بعد عبارة browser.sleep ، فسيتم تنفيذ هذه العبارة (يمكنني رؤية العبارة) ولكن المتصفح browser.sleep لا ينتظر حقًا على الرغم من زيادة وقت النوم.
لماذا لا يعمل browser.sleep؟ كيف أجعلها تنتظر إذا كان العميل XYZ؟
if (testproperties.client == 'ABC'){
browser.ignoreSynchronization = false;
browser.waitForAngular();
browser.ignoreSynchronization = true;
}
else if (testproperties.client == 'XYZ'){
browser.sleep('35000');
};
@ gamecheck80 إزالة علامات الاقتباس الفردية في ملف
// use like this
browser.sleep(35000);
سريع حقًا للتوضيح: browser.sleep يعود بوعد. النظر في هذا عن كثب:
browser.sleep ("35000") هو إدخال مقبول.
نظرًا لأن browser.sleep يأتي بوعد ، سيظهر أنه يعمل فقط إذا انتظرت انتهاء الوعد.
describe('browser', function() {
it('should sleep', function() {
browser.get('http://angularjs.org');
// does not work
// browser.sleep(10000);
// console.log('waited 10 seconds?');
// this does not work and "waited 10 seconds?" appears immediately after navigating
// after sleeping then print "waited 10 seconds"
browser.sleep(10000).then(function() {
console.log('waited 10 seconds');
});
});
});
نأمل أن يساعد هذا. لمزيد من المساعدة ، يرجى طرح أسئلة الدعم الخاصة بك على StackOverflow أو قائمة مناقشة مجموعة Google أو Gitter . لمزيد من المعلومات ، يرجى الرجوع إلى https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions
شكرا لك!
browser.sleep (10000) .then (function () {
console.log ("انتظر 10 ثوان") ؛
}) ؛
لا يعمل استخدام هذا مع Angular 6 والإصدار 5.4.1 منقلة ، على الأقل هذا ما أراه
التعليق الأكثر فائدة
@ gamecheck80 إزالة علامات الاقتباس الفردية في ملف