Python中Selenium Edge WebDriver连接调试地址的逻辑是否正确?
Selenium Edge WebDriver 通过调试地址连接浏览器的代码逻辑检查
我已经导入了正确的Python模块,但使用Selenium Edge WebDriver通过调试地址连接浏览器时持续报错。我认为下述代码是实现该功能的正确方式(已移除WebDriver路径和调试地址),请问代码逻辑是否正确?
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Options ser = Service("") op = webdriver.EdgeOptions() op.add_experimental_option("debuggerAddress", "") bezinga = webdriver.Edge(service = ser, options = op) print('edge connected')
代码逻辑存在的问题及修正建议
- 重复导入引发命名冲突:你同时导入了Chrome和Edge的
Service、Options类,后导入的Edge相关类会覆盖先导入的Chrome类,虽然最终用的是Edge,但这种冗余导入完全没必要,还可能引发潜在问题,应该只保留Edge相关的导入。 - Service路径为空的问题:如果Edge WebDriver已配置到系统环境变量中,可直接省略
service参数;若未配置,空字符串的路径必然报错,需填写正确的msedgedriver.exe路径。 - EdgeOptions使用逻辑正确:
webdriver.EdgeOptions()的调用和添加debuggerAddress的方式没问题,但需确保调试地址格式正确(如localhost:9222)。
修正后的示例代码
from selenium import webdriver from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Options # 若已配置环境变量,可删除Service相关代码,直接使用webdriver.Edge(options=op) ser = Service("你的msedgedriver.exe完整路径") op = Options() op.add_experimental_option("debuggerAddress", "localhost:9222") # 替换为实际调试地址 bezinga = webdriver.Edge(service=ser, options=op) print('edge connected')
内容的提问来源于stack exchange,提问作者Hayden
相关产品推荐
相关产品推荐

