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

Selenium技术问题:ChromeDriver无executable_path参数+元素定位无输出

问题1:使用webdriver.Chrome无法传入executable_path参数的原因
  • Selenium版本迭代导致参数变更:Selenium 4.x及以上版本中,webdriver.Chrome()不再支持直接传入executable_path参数,需通过ChromeService类配置驱动路径,这是最常见的原因。
  • 驱动路径错误:路径拼写有误、驱动文件不存在,或者当前用户没有读取该文件的权限。
  • 浏览器与驱动版本不兼容:Chrome浏览器和ChromeDriver版本不匹配,会导致驱动加载失败,进而引发参数传递相关报错。
  • 依赖安装问题:未正确安装Selenium库,或安装的版本与代码写法不匹配。
问题2:抓取https://vanhack.com/jobs无输出的问题分析及修复

你的代码存在以下关键问题:

  1. 未访问目标网站:仅定义了website变量,但未调用driver.get(website)打开页面,浏览器处于空白状态,无法定位元素。
  2. 驱动路径格式错误:你使用Mac系统,但驱动路径带.exe后缀(Windows系统驱动格式),Mac版ChromeDriver无此后缀,需修改路径为/Users/Backdoor/Desktop/12projects/vanhack/chromedriver。
  3. 元素定位类名错误:lline-number并非目标网站职位元素的类名,需通过浏览器开发者工具(F12)准确获取实际类名,比如可能是job-card这类标识。
  4. 缺少元素等待机制:页面为动态渲染,直接调用find_element会因元素未加载完成而定位失败,需用显式等待确保元素就绪。
  5. 未添加输出逻辑:仅定义content变量,但无print(content.text)这类输出语句,即使定位成功也不会在控制台显示内容。

修复后的示例代码:

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

website = "https://vanhack.com/jobs"
# 修正Mac系统驱动路径
driver_path = "/Users/Backdoor/Desktop/12projects/vanhack/chromedriver"
service = webdriver.ChromeService(executable_path=driver_path)
driver = webdriver.Chrome(service=service)

# 打开目标网站
driver.get(website)

# 显式等待元素加载(需替换为实际正确的类名)
try:
    content = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, 'job-card'))
    )
    # 输出元素内容
    print(content.text)
except Exception as e:
    print(f"定位失败:{e}")
finally:
    driver.quit()

内容的提问来源于stack exchange,提问作者Omolola Alonge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:07:11