我目前正在尝试在Ubuntu 20.04服务器上使用selenium和geckodriver运行python脚本。我正在使用gunicorn和nginx来设置我的flask应用程序,但是我已经尝试了好几天了,以在所有类似的文章上使用每个答案,但是对于其他人来说,仍然没有任何效果。
有人知道我在做什么错吗?
Firefox版本– Mozilla Firefox 81.0
硒版本-3.141.0
Geckodriver版本– 0.27.0
代码:(我已经在下面尝试了这6种方法)
def login(self):
try:
print("Logging in...")
# 1)
ff_options = FirefoxOptions()
ff_options.headless = True
self.driver = webdriver.Firefox(options=ff_options)
# 2)
ff_options = FirefoxOptions()
ff_options.headless = True
self.driver = webdriver.Firefox(executable_path="./geckodriver", options=ff_options)
# 3)
self.driver = webdriver.Firefox()
# 4)
self.driver = webdriver.Firefox('./geckodriver')
# 5)
binary = FirefoxBinary('/usr/local/bin/geckodriver')
browser = webdriver.Firefox(firefox_binary=binary)
# 6)
binary = FirefoxBinary('/usr/bin/firefox')
driver = webdriver.Firefox(firefox_binary=binary, executable_path="/home/ubuntu/cole/instagram_bot_v2")
self.driver.get('https://www.instagram.com/accounts/login')
我收到的错误:
Oct 12 07:00:11 ip-172-31-32-84 gunicorn[15245]: Message: 'geckodriver' executable needs to be in PATH.
我曾尝试将geckodriver可执行文件本身放在/ usr / bin,/ usr / local / bin以及我的项目目录中,所有这些文件均设置为可执行文件,但在运行时似乎没有什么不同,它们都得到相同的路径错误。
有人知道我可以尝试什么吗?
答案 0 :(得分:0)
您可以做的一件事是将geckodriver
移动到保存程序的相同目录。然后,您可以仅通过使用geckodriver
来启动webdriver.Firefox()
,而不用指定可执行文件的完整路径。这样可以节省您很多时间。