Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menavigasi Hasil Carian Amazon dengan Cekap dengan Selenium dan Mengelakkan StaleElementException?

Bagaimanakah Saya Boleh Menavigasi Hasil Carian Amazon dengan Cekap dengan Selenium dan Mengelakkan StaleElementException?

DDD
DDDasal
2024-11-29 09:39:11533semak imbas

How Can I Efficiently Navigate Amazon Search Results with Selenium and Avoid StaleElementException?

Menavigasi Keputusan Amazon dengan Selenium

Apabila melelaran melalui hasil carian di Amazon menggunakan Selenium, ralat biasa yang boleh timbul ialah StaleElementException. Ralat ini menunjukkan bahawa elemen yang berinteraksi tidak lagi dilampirkan pada DOM, sama ada disebabkan oleh perubahan halaman atau muat semula.

Untuk mengatasi isu ini, dan bukannya bergantung pada logik kompleks untuk menatal ke elemen tertentu, a pendekatan yang lebih mudah boleh diambil. Dengan mengklik berulang-ulang pada butang "Seterusnya" semasa ia tersedia, skrip boleh bergerak melalui halaman hasil tanpa menemui ralat.

Kod yang disemak ini menggunakan penantian eksplisit untuk memastikan butang itu boleh diklik sebelum mengkliknya:

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

driver = webdriver.Chrome()

driver.get('https://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=sonicare+toothbrush')

while True:
    try:
        wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'a > span#pagnNextString'))).click()
    except TimeoutException:
        break

Adalah penting untuk ambil perhatian bahawa kaedah implicitly_wait() , seperti rakan sejawat menunggu yang jelas, tidak menjamin masa menunggu penuh. Sebaliknya, ia mewakili masa maksimum pemandu akan menunggu untuk elemen muncul dalam DOM, secara tiba-tiba menamatkan penantian apabila elemen itu dikesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menavigasi Hasil Carian Amazon dengan Cekap dengan Selenium dan Mengelakkan StaleElementException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn