"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > يوم من أيام الكود

يوم من أيام الكود

تم النشر بتاريخ 2024-10-31
تصفح:820

Day of DaysOfCode

يا! لقد مرت فترة من الوقت منذ آخر دخول.
لقد قمت مؤخرًا بمعالجة مشكلة تتعلق بفقدان مراجع العناصر داخل حلقة ما، وأخيرًا وجدت حلاً أود مشاركته معكم جميعًا.

ما أردت تحقيقه

  • جمع عناصر الزر في صفحة ويب محددة.
  • انقر على كل زر للانتقال إلى صفحة أخرى.
  • بعد تنفيذ إجراءات معينة في الصفحة الجديدة، ارجع إلى الصفحة الأولى.
  • كرر الخطوتين 2 و3 حتى يتم النقر على كافة الأزرار.

إليك نسخة مبسطة من الكود الأولي:

const someElements = await page.$$("xpath/ .//foo[@name='hoge']");

for (let i=0; i 



ما الخطأ الذي واجهته

بعد تكرار حلقة forst، لم يتمكن البرنامج النصي من تحديد موقع عناصر الزر. ظللت أتلقى الخطأ التالي:
خطأ في البروتوكول: خطأ في البروتوكول (DOM.describeNode): لا يمكن العثور على سياق بالمعرف المحدد في

كيف حلها

لقد قمت بحل هذه المشكلة عن طريق إعادة الإعلان عن قائمة عناصر الزر داخل الحلقة.
إليك الكود المعدل:

const someElements1 = await page.$$("xpath/ .//foo[@name='hoge']");

for (let i=0; i 



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

إذا واجهت مشكلة مع .click() في حلقة عند التنقل بين الصفحات، ففكر في إعادة الإعلان عن العنصر داخل الحلقة نفسها. قد يوفر لك هذا التغيير البسيط الكثير من الوقت في استكشاف الأخطاء وإصلاحها!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/koichiarai/day-23-of-100daysofcode-2opg?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3