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

运行Selenium代码报get() missing 1 required positional argument: 'url'怎么解决

报错核心原因

你触发该报错的根本原因是没有实例化Chrome驱动对象:

  • 原代码里browser = webdriver.Chrome是把Chrome类本身赋值给了browser变量,并没有创建实际的浏览器实例
  • 类直接调用实例方法get()时,不会自动传入self参数,你传入的url会被识别为self参数,因此方法判定缺少必填的url参数,抛出对应报错

其他需要修正的代码问题

  • find_element_by_class_name()不支持传入多个类名,原代码里的gLFyf gsfi是两个独立类名,会触发定位失败
  • 你需要获取多个搜索结果链接,应该用返回元素列表的find_elements(复数)方法,原代码用的find_element只会返回第一个匹配的元素,无法遍历
  • 新版本Selenium已经废弃了find_element_by_xx系列方法,需要使用By类来指定定位方式
  • 谷歌搜索的结果页结构已经更新,原代码里的xpath定位规则无法匹配到现有结构

修正后可运行代码

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

def get_results(search_term):
    url = "https://www.google.com"
    # 加括号实例化Chrome驱动,如果ChromeDriver不在系统PATH中,需要传入executable_path参数指定驱动路径
    browser = webdriver.Chrome()
    browser.get(url)
    # 用css选择器定位搜索框,支持多类名匹配
    search_box = browser.find_element(By.CSS_SELECTOR, '.gLFyf.gsfi')
    search_box.send_keys(search_term)
    search_box.submit()
    # 等待页面加载完成,避免定位不到元素
    time.sleep(2)
    # 匹配所有搜索结果的标题链接
    links = browser.find_elements(By.XPATH, '//h3/ancestor::a')
    results = []
    for link in links:
        href = link.get_attribute('href')
        # 排除非搜索结果的跳转链接
        if href and "http" in href:
            print(href)
            results.append(href)
    browser.close()
    return results

get_results('dog')

内容的提问来源于stack exchange,提问作者Spud Productions

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:24:04