运行 无头 Firefox 或 chrome 在 DigitalOcean 中
Running headless Firefox or chrome in DigitalOcean
我正在尝试 运行 headless Chrome 或 DigitalOcean 中的 Firefox,并尝试了很多解决方案,但 none 似乎有效。
该代码在我的本地系统中运行良好,但在我的 DigitalOcean 服务器中却不行。
这是我用来测试无头 Firefox 的测试
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# print("open virtual display")
with Display():
print("open Firefox browser")
browser = webdriver.Firefox()
browser.set_window_size(1120, 550)
url = 'http://arbspiper.com/'
browser.get(url)
title = browser.title
print(title)
browser.quit()
我得到的错误是
Traceback (most recent call last):
File "firefox.py", line 9, in <module>
browser = webdriver.Firefox()
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: newSession
火狐浏览器 64.0
硒版本 (3.141.0)
答案来自 Manoj Kengudelu 的评论。
gekodriver 必须与您使用的 firefox 版本兼容。
查看 supported platforms table here
找到要使用的 gekodriver 后,您可以下载它,使其可执行并将其添加到路径中。
再次感谢:Manoj Kengudelu
我正在尝试 运行 headless Chrome 或 DigitalOcean 中的 Firefox,并尝试了很多解决方案,但 none 似乎有效。
该代码在我的本地系统中运行良好,但在我的 DigitalOcean 服务器中却不行。
这是我用来测试无头 Firefox 的测试
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# print("open virtual display")
with Display():
print("open Firefox browser")
browser = webdriver.Firefox()
browser.set_window_size(1120, 550)
url = 'http://arbspiper.com/'
browser.get(url)
title = browser.title
print(title)
browser.quit()
我得到的错误是
Traceback (most recent call last):
File "firefox.py", line 9, in <module>
browser = webdriver.Firefox()
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/arbspiper_project/env/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: newSession
火狐浏览器 64.0 硒版本 (3.141.0)
答案来自 Manoj Kengudelu 的评论。
gekodriver 必须与您使用的 firefox 版本兼容。 查看 supported platforms table here
找到要使用的 gekodriver 后,您可以下载它,使其可执行并将其添加到路径中。
再次感谢:Manoj Kengudelu