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

كيفية إيقاف تنفيذ Selenium WebDriver مؤقتًا بكفاءة في بايثون؟

تم النشر بتاريخ 2024-12-26
تصفح:443

How to Efficiently Pause Selenium WebDriver Execution in Python?

عبارات الانتظار والشروط في Selenium WebDriver

السؤال: كيف يمكنني إيقاف تنفيذ Selenium WebDriver مؤقتًا للميلي ثانية في Python؟

]

الإجابة:

بينما يمكن استخدام الدالة time.sleep() لتعليق التنفيذ لعدد محدد من الثواني، لا يوصى عمومًا بذلك في أتمتة Selenium WebDriver.

استخدام WebDriverWait الخاص بـ Selenium

بدلاً من ذلك، يوفر Selenium فئة WebDriverWait بالتزامن مع الشروط المتوقعة للتحقق من صحة العنصر ولاية. فيما يلي الشروط الشائعة المتوقعة:

  1. وجود العنصر الموجود: التحقق مما إذا كان العنصر موجودًا في DOM.
  2. رؤية العنصر الموجود : يتحقق مما إذا كان العنصر مرئيًا وله ارتفاع وعرض أكبر من 0.
  3. العنصر القابل للنقر عليه: يتحقق مما إذا كان العنصر مرئيًا وممكّنًا وقابلاً للتفاعل.
مثال:

من برنامج تشغيل ويب استيراد السيلينيوم من selenium.webdriver.support.ui استيراد WebDriverWait من selenium.webdriver.support قم باستيراد الشروط المتوقعة كـ EC برنامج التشغيل = برنامج تشغيل الويب.Chrome() wait = WebDriverWait(driver, 10) # المهلة بعد 10 ثواني # انتظر حتى يصبح العنصر قابلاً للنقر element = wait.until(EC.element_to_be_clickable((By.ID, "some_button"))) element.click()

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10) # Timeout after 10 seconds

# Wait until an element is clickable
element = wait.until(EC.element_to_be_clickable((By.ID, "some_button")))
element.click()

المراجع:

لمزيد من المعلومات، راجع:

WebDriverWait لا يعمل كما هو متوقع: https://stackoverflow.com/questions/37372143/webdriverwait-not-working-as-expected
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3