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

如何用相对路径启动Selenium Edge WebDriver?变量加r标识无效

问题:相对路径启动Selenium Edge WebDriver失败

想要通过相对路径启动Selenium Edge WebDriver,但当前代码无法正常运行。代码如下:

path_main = os.getcwd()
edge_path = str('\\') + 'build\msedgedriver.exe'
path_get = path_main + edge_path
s = service.Service(r'path_get')

确认路径是正确的,但最后一行代码无法工作。请问是否可以用r标识读取变量作为路径链接?能否帮我优化代码使其更灵活?


问题分析

  1. r前缀使用错误:r'path_get'是把字符串path_get直接当作路径,而非读取变量path_get的值。r前缀仅对字符串字面量生效,不能直接作用于变量。
  2. 路径拼接不规范:手动拼接字符串路径容易出现转义问题(比如'build\msedgedriver.exe'里的\m会被转义,实际变成buildmsedgedriver.exe),同时也不具备跨平台兼容性。

优化后的代码

推荐使用Python内置的路径处理工具,既解决转义问题,又能跨平台运行:

方法1:使用os.path模块(兼容所有Python版本)

import os
from selenium.webdriver.edge.service import Service

# 自动处理路径分隔符,避免转义错误
driver_path = os.path.join(os.getcwd(), 'build', 'msedgedriver.exe')
s = Service(driver_path)

方法2:使用pathlib(Python3.4+推荐,语法更简洁)

from pathlib import Path
from selenium.webdriver.edge.service import Service

# Path对象自动处理跨平台路径逻辑
driver_path = Path.cwd() / 'build' / 'msedgedriver.exe'
# 部分旧版Selenium需传入字符串,新版本可直接传Path对象
s = Service(str(driver_path))

关键说明

  • 无需给变量加r前缀,路径处理工具会自动转义和适配系统路径分隔符。
  • 上述两种方法均支持Windows、Linux、macOS跨平台运行,比手动拼接字符串更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:03:18