AngularJS منقلة العنصر by.model لا يمكن العثور على العنصر؟

StackOverflow https://stackoverflow.com//questions/21007101

سؤال

باستخدام بناء جملة العنصر (by.model()) للعثور على حقل وإدخال النص.

element(by.model('sample_ad.id')).sendKeys('batman');

يحصل على الاستثناء من chromedriver:

Stacktrace:
     Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds
    at Error (<anonymous>)
==== async task ====
WebDriver.executeScript()
    at Protractor.waitForAngular (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:278:22)
    at Protractor.findElement (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:427:8)
    at Object.elementFinder.(anonymous function) [as sendKeys] (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:62:21)
    at null.<anonymous> (/Users/jon/dev/project_name/test/e2e/features/somedirectiveSpec.js:24:39)
    at /Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:54:12
==== async task ====
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:53:12)
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

لست متأكدًا من سبب كسر هذا، لكن المنقلة تبدو هشة للغاية الآن... ليس لدي أي مشاكل في استخدام كائن المتصفح للعثور على العناصر، وإدخال النص، وما إلى ذلك ...

سيكون موضع تقدير أي مساعدة

يحرر:إذا قمت بتغيير السطر إلى ما يلي، فأنا قادر على التفاعل مع حقل النص.browser.driver.findElement(protractor.By.id('sample_ad_id')).sendKeys('batman');

نصائح أخرى

نأمل أن هذا سوف يساعد الآخرين....

وجدت هذا على جيثب (انظر رابط المراجع).أعتقد أن المشكلة هي عدم عودة البرنامج النصي، وبالتالي لم تعمل مفاتيح الإرسال.قبل التفاعل مع dom باستخدام كائنات المنقلة (العنصر، ptor، إلخ)، قم بتعيين هذا المتغير:

browser.ignoreSynchronization = true;

سبب عمل ما يلي هو أنه لا يعتمد على المكالمات غير المتزامنة، بل يتفاعل مباشرة مع dom ويدرج المفاتيح في حقل الإدخال.browser.driver.findElement(protractor.By.id('sample_ad_id')).sendKeys('batman');

سبب عدم نجاح مكالمتي (أعتقد) لأنه كانت هناك مكالمة غير متزامنة ولم يتم إرجاعها في الوقت المناسب.
element(by.model('sample_ad.id')).sendKeys('batman');

مراجع:https://github.com/angular/protractor/issues/325

يبدو أن الاختبار الخاص بك هو توقيت.المهلة الافتراضية المنقولة هي 11 ثانية.

حاول تحديد مهلة مختلفة لهذا الاختبار:

giveacodicetagpre.

يمكنك أيضا تجاوز المهلة لجميع الاختبارات الخاصة بك في ملف تكوين المنقلة.انظر هذا الملف تكوين الملف:

https://github.com/andresdominguez/المنقلة - ميتوب / بلوب / ماجستير / prolactor-config.js # L19

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top