弃用警告:firefox_profile已弃用,请传入服务对象



我一直在尝试在Kali-linux中自动化我的firefox浏览器。我安装了selenium和gekdriver,并运行了这个简单的脚本:

from selenium import webdriver
browser = webdriver.Firefox('/usr/bin/')
browser.get('www.duckduckgo.com')
#I saw a video where the guy mentioned that we do not have to use the path of the browser (doesn't work for me)

在python中以python3 script.py终端冻结在:

script.py:4: DeprecationWarning: firefox_profile has been deprecated, please pass in a Service object

中断过程后,它会发出以下错误:

browser = webdriver.Firefox('/usr/bin/')
^CTraceback (most recent call last):
File "script.py", line 4, in <module>
browser = webdriver.Firefox('/usr/bin/')
File "/usr/lib/python3/dist-packages/selenium/webdriver/firefox/webdriver.py", line 155, in __init__
firefox_profile = FirefoxProfile(firefox_profile)
File "/usr/lib/python3/dist-packages/selenium/webdriver/firefox/firefox_profile.py", line 78, in __init__
ignore=shutil.ignore_patterns("parent.lock", "lock", ".parentlock"))
File "/usr/lib/python3.7/shutil.py", line 354, in copytree
copy_function(srcname, dstname)
File "/usr/lib/python3.7/shutil.py", line 266, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib/python3.7/shutil.py", line 122, in copyfile
copyfileobj(fsrc, fdst)
File "/usr/lib/python3.7/shutil.py", line 79, in copyfileobj
buf = fsrc.read(length)
KeyboardInterrupt

我真的不明白这是什么意思。你能帮我修一下吗?提前谢谢。

PS:我还安装了geckodriver v0.26,并将其放在与script.py文件相同的目录中。

使用此命令查找geckdriver 的正确位置

$ Which geckdriver

试试这个

path = '<your driver location>'
browser = webdriver.Firefox(executable_path=path)
def setFirefoxDriver():
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
driverPath = r'yourPathHeregeckodriver.exe'
dService = Service(driverPath)
d = webdriver.Firefox(service=dService)
return d
d.get('site.com')

最新更新