【发布时间】:2021-04-23 17:19:56
【问题描述】:
这个最小的例子使用标准 python3 工作得很好 但它不会在 PyCharm 项目中运行。
from selenium import webdriver
browser = webdriver.Firefox(executable_path="PATHTODRIVER")
browser.get('https://www.google.com')
PyCharm 中显示的错误是:
selenium.common.exceptions.SessionNotCreatedException:消息:预期的浏览器二进制位置,但无法在默认位置找到二进制文件,没有提供“moz:firefoxOptions.binary”功能,并且在命令行上没有设置二进制标志
所以它没有找到我尝试指定的二进制位置。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.binary_location = "/usr/bin/firefox"
browser = webdriver.Firefox(firefox_options=options, executable_path="PATHTODRIVER")
browser.get('https://www.google.com')
新的错误是
selenium.common.exceptions.InvalidArgumentException:消息:二进制不是 Firefox 可执行文件
我不太了解这个错误,所以我停止了进一步挖掘。 代码运行良好,使用
python3 test.py
为什么在 PyCharm 项目环境下不起作用?
【问题讨论】:
-
1.您是否将 geckodriver 移至 usr/local/bin/?我认为你有,但我只是在检查。如果你没有输入 mv ~/Downloads/geckodriver /usr/local/bin. 2.你有没有试过去掉驱动的路径,只用webdriver.Firefox()?
-
@Insula 不,我已将其保存在项目文件夹中,我不想添加 PATH 或将 geckodriver 移动到 PATH 目录。由于它不包含在 PATH 中,因此代码在没有驱动程序路径的情况下无法运行
-
我建议将geckodriver移到用户本地bin中,这样可以省去很多麻烦
-
@Insula 你可能是对的,但考虑到代码在没有 PyCharm 的情况下工作得很好,这应该不是问题。 geckodriver 也正确加载,因为它抱怨浏览器位置
-
嗯,我明白了。我找到了这个 tutorial 对你有什么帮助。