簡體   English   中英

使用 driver.find_elements_by_class_name 后運行打印不起作用

[英]Print does not work when I run it after using driver.find_elements_by_class_name

我正在嘗試從頁面獲取一些信息,但在嘗試打印數據時遇到了一些問題。 我在 Python 和 HTML/Javascript 中相對較新。

我要抓取的頁面是動態的,所以當我向下滾動時,會出現新代碼(也許它對我的問題很重要)。

我想得到的文字是“SKU:9165221”

在此處輸入圖像描述

這是我的那部分代碼:

skus = driver.find_elements_by_class_name("_1bnfI1NVgLYTTy9EpaXGRA _3aVhOQmbPfemOgw8Ihvm5g")
for product in skus:
    print(product.text)

當我運行打印時,沒有錯誤,但打印下方沒有任何內容,什么也沒有。 也許我做錯了什么? 請幫忙!

在此處輸入圖像描述

如果您添加這一行print(len(skus)) ,那么您將獲得0的返回值,這將導致您的代碼永遠不會進入循環。

似乎您的元素具有多個 class 名稱,您不能使用.find_elements_by_class_name ,這僅適用於單個 class 名稱。 相反,您可以使用.find_elements_by_css_selector

#更新

使用WebDriverWait

skus = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '._1bnfI1NVgLYTTy9EpaXGRA._3aVhOQmbPfemOgw8Ihvm5g')))
print(len(skus))
for product in skus:
    print(product.text)

導入后:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM