Cara Menunggu Halaman Dimuat Menggunakan Selenium WebDriver untuk Python
Apabila mengikis data daripada halaman web yang dilaksanakan dengan menatal tanpa had, adalah penting untuk mengesan dengan cekap apabila halaman telah memuatkan kandungan baharu sepenuhnya. Artikel ini meneroka pendekatan yang lebih cekap masa berbanding menunggu selang masa tetap selepas setiap tatal.
Mekanisme Pemuatan Halaman Lalai
Secara lalai, Selenium WebDriver's .get () kaedah menunggu halaman dimuatkan sepenuhnya. Walau bagaimanapun, ini tidak mengambil kira untuk memuatkan dalam bingkai atau melalui permintaan AJAX.
Menggunakan WebDriverWait for Specific Elements
Untuk menunggu elemen tertentu tersedia pada halaman, gunakan WebDriverWait() dengan expected_conditions. Contohnya:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By delay = 3 # seconds driver = webdriver.Firefox() driver.get("url") try: myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'id-of-element'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
Pertimbangan
Perhatikan bahawa WebDriverWait hanya menunggu elemen atau syarat yang ditentukan menjadi benar. Jika menunggu elemen atau syarat tambahan, anda mungkin perlu menggunakan kod tersuai untuk mengesan penyiapan pemuatan halaman.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Dengan Cekap Apabila Halaman Web (dengan Tatal Infinite) Telah Dimuat Sepenuhnya Menggunakan Selenium WebDriver dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!