事情起因是需要用selenium去接管已打开的Firefox浏览器,参考了CSDN不少文章,虽然最终能用,但是始终有个警告
from selenium import webdriver
FIREFOX_PATH = r'"C:\Program Files\Mozilla Firefox\firefox.exe"'
GECKODRIVER_PATH = r'D:\soft\geckodriver.exe'
driver = webdriver.Firefox(executable_path=GECKODRIVER_PATH,
service_args=['--marionette-port', '2828', '--connect-existing'])
print(driver.title)
警告提示:
DeprecationWarning: service_args has been deprecated, please pass in a Service object
driver = webdriver.Firefox(executable_path=GECKODRIVER_PATH,
大致意思是:弃用警告:service_args已弃用,请传入一个服务对象。
查了不少资料,包括chatgpt3.5,都不能解决问题,猜测是因为我的selenium已经是4.0版本了,网上现有的资料已经没更新了。
通过翻阅资料,按函数提示逐步尝试,终于解决了问题;
selenium4 接管已打开的Firefox浏览器步骤如下:
1、下载geckodriver.exe;注意geckodriver.exe路径与代码的要对应!
2、桌面Firefox快捷方式增加 -marionette -start-debugger-server 2828;
代码如下:
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
GECKODRIVER_PATH = r'D:\soft\geckodriver.exe'
service = Service(executable_path=GECKODRIVER_PATH, service_args=['--marionette-port', '2828', '--connect-existing'])
driver = webdriver.Firefox(service=service)
print(driver.title)
第一次写个文章,仅作纪念!