selenium 无法使用driver.find_elements_by_class_name()和driver.find_elements()函数

5kgi1eie  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(410)

我曾尝试通过Selenium从URL页面检索一些数据,但运行函数driver.find_element_by_class_name()后,我获得了错误消息:'WebDriver'对象没有属性'find_element_by_class_name'可能此函数在新模块更新中已被弃用,请提示我在哪里可以找到新函数的文档,而不是弃用的文档。
这是我的代码:

import pandas as pd
import time
import selenium 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import seaborn as sns
import os
import logging
######

PATH = 'C:/Program Files/chromedriver/chromedriver.exe'
options = Options()

driver = webdriver.Chrome(service = 
                          Service(PATH))
page_url = "https://witcher.fandom.com/wiki/Category:Characters_in_the_stories"
driver.get(page_url)
book_categories = driver.find_elements_by_class_name('category-page__member-link') 

AttributeError: 'WebDriver' object has no attribute 'find_elements_by_class_name'
------------
book_categories = driver.find_elements(By = 'class_name','category-page__member-link')

SyntaxError: positional argument follows keyword argument

我用的是Chrome驱动程序版本109.0.5414.74。Chrome版本109.0.5414.75。
我试着用

driver.find_elements(By.NAME, 'category-page__member-link),

但它也导致了错误:

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="category-page__member-link"]"}.

请帮助我找出这个错误的原因和如何解决它。

aydmsdu9

aydmsdu91#

您的定位器是正确的,但您的定位器类型是错误的。' category-page__member-link '是类属性的值,而不是名称,所以您必须这样提及:

driver.find_element(By.CLASS_NAME, "category-page__member-link")

driver.find_element(By.CSS_SELECTOR, ".category-page__member-link")

相关问题