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

如何在Selenium WebDriver命令中传递参数以重构浏览器操作代码

解决Selenium浏览器驱动动态调用问题

你遇到的核心问题是:直接写webdriver.browser_name()时,Python会把browser_name当成webdriver模块的固定属性名,而不是你传入的变量值,自然找不到对应的浏览器驱动类。

正确实现方式

用Python内置的getattr()函数,它能根据字符串动态获取对象的属性或类。修改后的函数如下:

import time
from selenium import webdriver

def go_to_baidu(browser_name):
    # 动态获取对应的浏览器驱动类
    browser_class = getattr(webdriver, browser_name)
    driver = browser_class()
    driver.get('http://www.baidu.com')
    time.sleep(2)
    driver.quit()

调用示例

# 启动Chrome访问百度
go_to_baidu('Chrome')
# 启动Firefox访问百度
go_to_baidu('Firefox')

可选优化:增加参数校验

为避免传入无效浏览器名导致报错,可以加一层校验逻辑:

import time
from selenium import webdriver

def go_to_baidu(browser_name):
    valid_browsers = ['Chrome', 'Firefox', 'Edge', 'Safari']
    if browser_name not in valid_browsers:
        raise ValueError(f"不支持该浏览器,可选值:{valid_browsers}")
    
    browser_class = getattr(webdriver, browser_name)
    driver = browser_class()
    driver.get('http://www.baidu.com')
    time.sleep(2)
    driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:48:16