Python Selenium在ubuntu中设置firefox配置文件的路径
Posted
技术标签:
【中文标题】Python Selenium在ubuntu中设置firefox配置文件的路径【英文标题】:Python Selenium setting path to firefox profile in ubuntu 【发布时间】:2022-01-13 05:46:46 【问题描述】:我已经使用 python 和 Selenium 在 Ubuntu 中设置了新创建的 Firefox 配置文件的路径。但是当我运行 python 脚本时,我遇到了这个问题
/bin/python3 /home/frixreda/Desktop/Python/testU.py
/home/frixreda/Desktop/Python/testU.py:7: DeprecationWarning: firefox_profile has been deprecated, please use an Options object
profile = webdriver.FirefoxProfile(
/home/frixreda/Desktop/Python/testU.py:13: DeprecationWarning: capabilities and desired_capabilities have been deprecated, please pass in a Service object
driver = webdriver.Firefox(firefox_profile=profile,
/home/frixreda/Desktop/Python/testU.py:13: DeprecationWarning: firefox_profile has been deprecated, please pass in an Options object
driver = webdriver.Firefox(firefox_profile=profile,
这是我的 python 脚本:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
profile = webdriver.FirefoxProfile(
r'/home/frixreda/.mozilla/firefox/3uz1obam.default')
profile.set_preference("dom.webdriver.enabled", False)
profile.set_preference('useAutomationExtension', False)
profile.update_preferences()
desired = DesiredCapabilities.FIREFOX
driver = webdriver.Firefox(firefox_profile=profile,
desired_capabilities=desired)
driver.get("https://gmail.com/")
【问题讨论】:
你有所有的错误信息:DeprecationWarning: firefox_profile has been deprecated, please use an Options object
。所以你应该使用Options()
而不是FirefoxProfile()
。或者更确切地说是FirefoxOptions()
【参考方案1】:
Browsers
正在改变,Selenium
也改变了一些设置 - 现在旧方法已被弃用但仍然可以工作(这只是警告,而不是错误)。
但警告显示首选方法是使用Option()
而不是FirefoxProfile()
而且它不需要使用DesiredCapabilities.FIREFOX
添加
'browserName': 'firefox', 'marionette': True, 'acceptInsecureCerts': True
因为它自动在options.capabilities
中拥有它
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
#from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
options = Options()
#help(options)
options.add_argument('-profile')
options.add_argument('/home/frixreda/.mozilla/firefox/3uz1obam.default')
options.set_preference('dom.webdriver.enabled', False)
options.set_preference('useAutomationExtension', False)
#options.set_headless() # deprecated
#options.headless = True # preferred
#options.set_capability(name, value)
#print("DesiredCapabilities:", DesiredCapabilities.FIREFOX) # 'browserName': 'firefox', 'marionette': True, 'acceptInsecureCerts': True
print('accept_insecure_certs:', options.accept_insecure_certs)
print('arguments :', options.arguments)
print('preferences :', options.preferences)
print('capabilities:', options.capabilities)
print('headless :', options.headless)
print('profile :', options.profile) # `None`??? but browser uses profile
print('proxy :', options.proxy)
print('binary :', options.binary)
#print('binary_location:', options.binary_location)
print('log :', options.log)
driver = webdriver.Firefox(options=options)
#driver.get("https://***.com")
driver.get("https://gmail.com")
顺便说一句:您可以使用help(options)
来查看所有带有说明的选项。
【讨论】:
dom.webdriver.enabled
被 Firefox 88 或更高版本忽略。以上是关于Python Selenium在ubuntu中设置firefox配置文件的路径的主要内容,如果未能解决你的问题,请参考以下文章
Python Selenium 设置路径到 firefox 配置文件(ubuntu)
在 Ubuntu 和 Fedora 中设置 Python 开发环境
如何在 Selenium WebDriver 中设置浏览器宽度和高度?
在Ubuntu_meta 16.04中设置默认Python3.5的命令