"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन सेलेनियम में एकाधिक तत्वों का लोड कैसे सुनिश्चित करें?

पायथन सेलेनियम में एकाधिक तत्वों का लोड कैसे सुनिश्चित करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:599

How to Ensure Multiple Elements Load in Python Selenium?

पायथन सेलेनियम: एकाधिक तत्वों को लोड करना सुनिश्चित करना

AJAX के माध्यम से गतिशील रूप से लोड किए गए तत्वों से निपटते समय, उनकी उपस्थिति की पुष्टि करना चुनौतीपूर्ण हो सकता है। इस परिदृश्य को संभालने के लिए, हम कई तत्वों की उपस्थिति सुनिश्चित करने के लिए सेलेनियम के वेबड्राइवरवेट और इसकी विभिन्न रणनीतियों का उपयोग करेंगे।

सभी तत्वों की दृश्यता:

की दृश्यता को सत्यापित करने के लिए एक विशिष्ट चयनकर्ता से मेल खाने वाले सभी तत्व, हम दृश्यता_of_all_elements_located() स्थिति को नियोजित कर सकते हैं:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

elements = WebDriverWait(driver, 20).until(
    EC.visibility_of_all_elements_located(
        (By.CSS_SELECTOR, "ul.ltr li[id^='t_b_'] > a[id^='t_a_'][href]")
    )
)

तत्वों की एक विशिष्ट संख्या की प्रतीक्षा:

यदि आपको लोड होने के लिए तत्वों की एक विशिष्ट संख्या की प्रतीक्षा करने की आवश्यकता है, तो आप अपेक्षित शर्तों के साथ एक लैम्ब्डा फ़ंक्शन का उपयोग कर सकते हैं कक्षा:

WebDriverWait(driver, 20).until(
    lambda driver: len(driver.find_elements_by_xpath(selector)) > int(myLength)
)

बाल तत्वों के लिए XPath:

पूरे DOM को खोजने के बजाय, मूल तत्व के भीतर बाल तत्वों की प्रतीक्षा करने के लिए, आप XPath अभिव्यक्तियों का उपयोग कर सकते हैं:

WebDriverWait(driver, 20).until(
    EC.presence_of_element_located(
        (By.XPATH, "//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_')]")
    )
)

कस्टम प्रतीक्षा शर्तें:

यदि आप अपनी स्वयं की प्रतीक्षा स्थिति बनाना पसंद करते हैं, तो आप webdriver.support.ui.ExpectedCondition का एक उपवर्ग परिभाषित कर सकते हैं:

class MoreThanOne(webdriver.support.ui.ExpectedCondition):
    def __init__(self, selector):
        self.selector = selector

    def __call__(self, driver):
        elements = driver.find_elements_by_css_selector(self.selector)
        return len(elements) > 1
WebDriverWait(driver, 30).until(MoreThanOne('li'))

DOM में तत्व हानि की रोकथाम:

खोज ऑपरेशन के बाद वर्तमान तत्व को खोने से बचने के लिए, प्रतीक्षा करने से पहले इसे एक चर में संग्रहीत करें:

element = driver.find_element_by_css_selector('ul')
WebDriverWait(element, 30).until(MoreThanOne('li'))

निष्कर्ष:

ये तकनीकें लोडिंग के लिए प्रतीक्षा करने का एक लचीला और मजबूत तरीका प्रदान करती हैं सेलेनियम में अनेक तत्व। अपनी आवश्यकताओं के आधार पर, वह दृष्टिकोण चुनें जो आपके उपयोग के मामले में सबसे उपयुक्त हो।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3