Python 3.x 如何通过SSH连接在远程服务器上运行headless firefox浏览器?
我有一个远程服务器,我希望在那里运行Firefox的无头会话。我登录到远程服务器并执行命令。即使命令是无头的,它仍然会打开我机器的Firefox并在其中执行操作。知道原因是什么吗?我希望在显示器(如笔记本电脑)未连接的情况下远程执行这些操作Python 3.x 如何通过SSH连接在远程服务器上运行headless firefox浏览器?,python-3.x,selenium,firefox,Python 3.x,Selenium,Firefox,我有一个远程服务器,我希望在那里运行Firefox的无头会话。我登录到远程服务器并执行命令。即使命令是无头的,它仍然会打开我机器的Firefox并在其中执行操作。知道原因是什么吗?我希望在显示器(如笔记本电脑)未连接的情况下远程执行这些操作 from selenium.webdriver import Firefox from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Key
from selenium.webdriver import Firefox
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as expected
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
options = Options()
options.add_argument('-headless')
driver = Firefox(executable_path='/path/to/geckodriver', firefox_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get('http://www.google.com')
wait.until(expected.visibility_of_element_located((By.NAME, 'q'))).send_keys('headless firefox' + Keys.ENTER)
wait.until(expected.visibility_of_element_located((By.CSS_SELECTOR, '#ires a'))).click()
print(driver.page_source)
driver.quit()
我自己决定如下: 首先在终端运行这个
sudo apt-get install xvfb
sudo pip3 install pyvirtualdisplay
然后在代码中添加以下行
from pyvirtualdisplay import Display
display = Display(visible=0,size=(1024,768))
display.start()
我的浏览器配置如下所示:
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False
display = Display(visible=0,size=(1024,768))
display.start()
options = Options()
options.set_headless(headless=True)
binary = FirefoxBinary("/home/ubuntu/firefox/firefox")
options.add_argument("-headless")
browser = Firefox(firefox_options=options, executable_path='/home/ubuntu/Documents/sourcecode/geckodriver',firefox_binary=binary,capabilities = cap )
我自己决定如下: 首先在终端运行这个
sudo apt-get install xvfb
sudo pip3 install pyvirtualdisplay
然后在代码中添加以下行
from pyvirtualdisplay import Display
display = Display(visible=0,size=(1024,768))
display.start()
我的浏览器配置如下所示:
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False
display = Display(visible=0,size=(1024,768))
display.start()
options = Options()
options.set_headless(headless=True)
binary = FirefoxBinary("/home/ubuntu/firefox/firefox")
options.add_argument("-headless")
browser = Firefox(firefox_options=options, executable_path='/home/ubuntu/Documents/sourcecode/geckodriver',firefox_binary=binary,capabilities = cap )
add_参数(“--headless”)也尝试过这个。没有,幸运的是,您尝试过这个选项:-options.set_headless(headless=True)是的。问题是我们正在通过SSHY在终端计算机上执行代码。您需要在远程计算机上执行代码,而不是在您的机器选项上本地执行代码。add_参数(“--headless”)也尝试过这一点。没有,幸运的是,您尝试过这个选项:-options.set_headless(headless=True)是的。问题是我们正在通过SSHY在终端计算机上执行代码。您需要在远程计算机上执行代码,而不是在您的计算机上本地执行代码