Phantomjs: انقر فوق "تم" ولكن الإجراء ذي الصلة لا يحدث أبدًا على phantomjs. يعمل مع الكروم.

تم إنشاؤها على ٢٨ يونيو ٢٠١٦  ·  3تعليقات  ·  مصدر: ariya/phantomjs

مشكلة:

يتم تحديد الزر بشكل صحيح باستخدام محدد CSS ، ثم يتم النقر عليه. يتم وضع علامة على الحدث على أنه تم كما يظهر في سجلات السيلينيوم ، ولكن إذا نجحت ، يجب تقديم صفحة جديدة وهو ما لا يحدث.
نفس قطعة الكود تعمل في الكروم.

بيئة:

إصدار WDIO: v4.0.9
العقدة: 6.2.0
اختبار WDIO
اختبار متزامن.
سيلينيوم خادم مستقل 2.53.0.jar
bhuvneshchaudhary @ bhuviMac : ambari-selenium $ ./node_modules/phantomjs/bin/phantomjs - الإصدار
2.1.1

تفاصيل

      CommonElements.clickNext();
      browser.saveScreenshot('test1.jpg');
      browser.pause(5000);
      CommonElements.clickConfirmationOk();
      browser.pause(5000);
      // On Page 3
      browser.saveScreenshot('test.jpg');
      CommonElements.clickComplete();

في مقتطف الشفرة أعلاه
clickNext () يفتح نافذة منبثقة تحتوي على زرين إلغاء و موافق.
clickConfirmationOk () يجب النقر فوق الزر Ok والانتقال إلى الصفحة التالية
clickComplete () يشير إلى اكتمال الصفحة الجديدة.

ومع ذلك ، فإن clickConfirmationOk () ناجح وفقًا للسجلات وينتقل إلى النقر فوق CompleteComplete (). ومع ذلك ، فإنه يستمر في انتظار وجود العنصر ، لكنه لا يظهر أبدًا كما هو في الواقع لا يزال موجودًا في البوب ​​الذي يظهر Ok و Cancel.

محدد CSS المستخدم لتحديد الزر صحيح ، كما تم التحقق منه بواسطة getHTML وأدوات محددات css الأخرى عبر الإنترنت.

مقتطف الرمز

    clickConfirmationOk: {
        value: function () {
            var okSelector = '.modal-footer .btn.btn-success';
            browser.waitForExist(okSelector);
            console.log(browser.getHTML(okSelector));
            browser.waitForEnabled(okSelector, 100000);
            browser.click(okSelector);
        }
    },
    clickComplete: {
        value: function () {
            var completeSelector = '#common-progress-page .btn.btn-success.pull-right';
            browser.waitForExist(completeSelector);
            console.log(browser.isEnabled(completeSelector));
            browser.waitForEnabled(completeSelector, 900000);
            browser.click(completeSelector);
        }
    }

السجلات

سجلات السيلينيوم https://gist.github.com/bhuvnesh2703/aec82bea06debf92f9a4f6e4da93c2ea :
مخرجات نتائج الاختبار: https://gist.github.com/bhuvnesh2703/076af36f5931c8fdae4a81db612bf4b7

stale

التعليق الأكثر فائدة

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

ال 3 كومينتر

@ bhuvnesh2703 هل يحدث هذا لك في كل مرة أم في بعض الأحيان فقط؟ أرى مشكلة مماثلة حيث نستخدم Capybara find('#element').click وأحيانًا تفشل الاختبارات. ومع ذلك ، يبدو أن استخدام find().trigger('click') يعمل.

أتساءل ما إذا كانت هذه هي نفس المشكلة أم لا وكيفية جمع المزيد من المعلومات.

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

نظرًا لقدرتنا المحدودة جدًا على الصيانة ، نحتاج إلى إعطاء الأولوية لتركيز التطوير لدينا على المهام الأخرى. لذلك ، سيتم إغلاق هذه المشكلة تلقائيًا (انظر # 15395 لمزيد من التفاصيل). في المستقبل ، إذا رأينا الحاجة إلى معالجة هذه المشكلة مرة أخرى ، فسيتم إعادة فتحها. شكرا لمساهمتك!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات