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
Lepaskan: 2024-11-29 09:39:11
asal
455 orang telah melayarinya

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan