You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium报错InvalidArgumentException:无效定位器问题求助

问题:Selenium通过类名定位元素时抛出InvalidArgumentException错误

尝试使用Selenium从网页中通过类名获取元素,编写了如下代码:

import os
from selenium import webdriver

def launchBrowser():
    os.environ['PATH'] += r"/SeleniumDrivers/chromedriver_mac_arm64"
    driver = webdriver.Chrome()
    #driver.implicitly_wait(15)
    driver.get("https://www.geeksforgeeks.org/find_element_by_id-driver-method-selenium-python/")
    element = driver.find_element("class_name", "header-main_wrapper")
    #element = driver.find_element_by_xpath("//div[@class=bp3-button bp3-minimal]")
    #link = element.get_attribute("href")
    #link.click()
    while(True):
        pass

launchBrowser()

调试时执行element = driver.find_element("class_name", "header-main_wrapper")会抛出错误:

selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator


解决方法

错误核心原因是Selenium 4及以上版本中,find_element()方法不再支持直接传入字符串类型的定位器名称(如"class_name"),必须使用By类提供的常量。

具体修改步骤:

  1. 导入By类,补充到Selenium的导入语句中:
from selenium.webdriver.common.by import By
  1. 替换定位器参数,将字符串"class_name"改为By.CLASS_NAME:
element = driver.find_element(By.CLASS_NAME, "header-main_wrapper")

修改后的完整代码:

import os
from selenium import webdriver
from selenium.webdriver.common.by import By

def launchBrowser():
    os.environ['PATH'] += r"/SeleniumDrivers/chromedriver_mac_arm64"
    driver = webdriver.Chrome()
    driver.implicitly_wait(15)  # 取消注释,确保元素加载完成
    driver.get("https://www.geeksforgeeks.org/find_element_by_id-driver-method-selenium-python/")
    element = driver.find_element(By.CLASS_NAME, "header-main_wrapper")
    #element = driver.find_element_by_xpath("//div[@class='bp3-button bp3-minimal']")  # 补充:XPath写法需给类名加引号
    #link = element.get_attribute("href")
    #link.click()
    while(True):
        pass

launchBrowser()

额外提示:

  • 取消注释driver.implicitly_wait(15)可让驱动在找不到元素时等待15秒,避免因页面未加载完成导致的定位失败。
  • 注释中的XPath语句存在小问题:类名参数需要用引号包裹,正确写法是//div[@class='bp3-button bp3-minimal']。

内容的提问来源于stack exchange,提问作者Vikram Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:10:27