Как запустить безголовый браузер Firefox на удаленном сервере через SSH-соединение? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть удаленный сервер, и я хочу запустить там безголовый сеанс Firefox. Я вхожу в удаленный сервер и выполняю команду. Даже если команды безголовые, все равно он открывает Firefox моей машины и выполняет действия внутри него. Есть идеи, в чем может быть причина? Я хочу выполнить эти действия удаленно, без подключения к нему моего дисплея (например, моего ноутбука).

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()

1 Ответ

0 голосов
/ 27 июня 2018

Я сам решил это следующим образом:

Сначала запустите это в терминале

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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...