【问题标题】:Didn't work driver.find_elements_by_class_name() and driver.find_elements() functionsdriver.find_elements_by_class_name() 和 driver.find_elements() 函数不起作用
【发布时间】:2023-02-01 05:36:13
【问题描述】:

我试图通过 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

我使用 chromedriver 版本 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"]"}.

请帮助我找出此错误的原因以及解决方法。

【问题讨论】:

标签: selenium selenium-webdriver selenium-chromedriver findelement


【解决方案1】:

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

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

或者

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

【讨论】:

  • 谢谢你的提示。现在我可以废弃数据了,但为什么我仍然无法通过 <book_categories = driver.find_elements_by_class_name('category-page__member-link')> 获得相同的输出。这个功能被弃用了吗?我在哪里可以找到说明文档的地方?谢谢你的答案。
猜你喜欢
  • 1970-01-01
  • 2021-07-05
  • 2013-05-03
  • 1970-01-01
  • 2013-03-04
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多