파이썬에서 셀레늄으로 헤드리스 파이어폭스를 실행하는 방법?
파이썬, 셀레늄, 파이어폭스로 이 코드를 실행하고 있지만 여전히 '헤드' 버전의 파이어폭스를 얻습니다:
binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options('-headless')
self.driver = webdriver.Firefox(firefox_binary=binary)
나는 또한 이진법의 몇 가지 변형을 시도했다:
binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options("--headless")
파이어폭스 브라우저를 헤드리스로 호출하려면 다음과 같이 클래스를 통해 속성을 설정할 수 있습니다:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()
헤드리스 모드를 달성하는 또 다른 방법이 있습니다. 파이어폭스에서 헤드리스 모드를 비활성화하거나 활성화해야 할 경우 코드를 변경하지 않고 환경 변수를 헤드리스로 실행할 경우로 설정할 수 있습니다.
이 기능은 예를 들어 연속 통합을 사용하는 경우 서버에서 기능 테스트를 실행하지만 PC에서 일반 모드로 테스트를 실행할 수 있는 경우에 매우 유용합니다.
$ MOZ_HEADLESS=1 python manage.py test # testing example in Django with headless Firefox
또는
$ export MOZ_HEADLESS=1 # this way you only have to set it once
$ python manage.py test functional/tests/directory
$ unset MOZ_HEADLESS # if you want to disable headless mode
유튜브 비디오를 통한 단계
- Selenium 3.5.2(자바)를 통해 헤드리스 모드의 Mozilla Firefox
- Selenium Java를 통해 Headless Chrome을 사용하여 Gmail 계정에 로그인합니다
아우트로
셀레늄을 통해 헤드리스 모드에서 크롬 브라우저를 시작하도록 크롬 드라이버를 구성하는 방법은 무엇인가요?
내 대답:
set_headless(headless=True) is deprecated.
options.headless = True
나를 위해 일한다
첫 번째 답은 더 이상 통하지 않는다.
이것은 나에게 효과가 있었다:
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium import webdriver
options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("http://google.com")
Used below code to set driver type based on need of Headless / Head for both Firefox and chrome:
// Can pass browser type
if brower.lower() == 'chrome':
driver = webdriver.Chrome('..\drivers\chromedriver')
elif brower.lower() == 'headless chrome':
ch_Options = Options()
ch_Options.add_argument('--headless')
ch_Options.add_argument("--disable-gpu")
driver = webdriver.Chrome('..\drivers\chromedriver',options=ch_Options)
elif brower.lower() == 'firefox':
driver = webdriver.Firefox(executable_path=r'..\drivers\geckodriver.exe')
elif brower.lower() == 'headless firefox':
ff_option = FFOption()
ff_option.add_argument('--headless')
ff_option.add_argument("--disable-gpu")
driver = webdriver.Firefox(executable_path=r'..\drivers\geckodriver.exe', options=ff_option)
elif brower.lower() == 'ie':
driver = webdriver.Ie('..\drivers\IEDriverServer')
else:
raise Exception('Invalid Browser Type')
OP나 현재 관심 있는 사람들에게, 다음은 현재 파이어폭스에서 작동한 코드 섹션이다:
opt = webdriver.FirefoxOptions()
opt.add_argument('-headless')
ffox_driver = webdriver.Firefox(executable_path='\path\to\geckodriver', options=opt)
from selenium.webdriver.firefox.options import Options
if __name__ == "__main__":
options = Options()
options.add_argument('-headless')
driver = Firefox(executable_path='geckodriver', firefox_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get('http://www.google.com')
테스트 완료, 예상대로 작동하며 이는 다음에서 온 것입니다
요즘에는 이 코드를 사용합니다:
options = Options()
options.headless = True
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(),options=options)
경고가 있습니다:
사용 안 함 주의: unecompile_path가 사용 안 함. 서비스 개체를 전달하십시오
이것으로 변경하면 완벽하게 작동합니다:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# selenium drivers: https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
# pip3 install selenium
# pip3 install webdriver-manager
# for custom firefox installation: link firefox to /usr/bin/firefox, example: ln -s /opt/firefox/firefox-bin /usr/bin/firefox
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
options = Options()
options.headless = True
service = Service(executable_path=GeckoDriverManager().install())
driver = webdriver.Firefox(service=service, options=options)
driver.get("http://google.com/")
print("Headless Firefox Initialized")
driver.quit()
아래와 같이 Python 내에서 Headless Firefox를 실행할 수 있습니다:
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.add_argument("-headless") # Here
driver = webdriver.Firefox(options=options)
또는:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("-headless") # Here
driver = webdriver.Firefox(options=options)
또한 아래 예에서는 헤드리스 파이어폭스, 셀레늄 및 . * 여러 헤드리스 브라우저(크롬, 마이크로소프트 엣지 및 파이어폭스), 셀레늄, 피테스트 장고 및 장고를 사용하여 장고 관리를 테스트하는 방법을 설명합니다:
# "tests/test.py"
import pytest
from selenium import webdriver
from django.test import LiveServerTestCase
@pytest.fixture(scope="class")
def firefox_driver_init(request):
options = webdriver.FirefoxOptions()
options.add_argument("-headless")
firefox_driver = webdriver.Firefox(options=options)
request.cls.driver = firefox_driver
yield
firefox_driver.close()
@pytest.mark.usefixtures("firefox_driver_init")
class Test_URL_Firefox(LiveServerTestCase):
def test_open_url(self):
self.driver.get(("%s%s" % (self.live_server_url, "/admin/")))
assert "Log in | Django site admin" in self.driver.title
또는:
# "tests/conftest.py"
import pytest
from selenium import webdriver
@pytest.fixture(scope="class")
def firefox_driver_init(request):
options = webdriver.FirefoxOptions()
options.add_argument("-headless")
firefox_driver = webdriver.Firefox(options=options)
request.cls.driver = firefox_driver
yield
firefox_driver.close()
# "tests/test.py"
import pytest
from django.test import LiveServerTestCase
@pytest.mark.usefixtures("firefox_driver_init")
class Test_URL_Firefox(LiveServerTestCase):
def test_open_url(self):
self.driver.get(("%s%s" % (self.live_server_url, "/admin/")))
assert "Log in | Django site admin" in self.driver.title
'개발하자' 카테고리의 다른 글
오류 로드 상태 해결 방법: 액세스 거부: 액세스 거부 상태 코드: 테라폼 백엔드에 s3를 사용하려고 할 때 403? (0) | 2023.09.05 |
---|---|
파이썬에서 셀레늄으로 헤드리스 마이크로소프트 엣지를 실행하는 방법? (0) | 2023.09.04 |
플러터에서 아이콘의 무게/대담함(FontWeight) 증가/구성 방법 (0) | 2023.09.03 |
타이프스크립트 인터페이스에서 사용할 수 있도록 구성요소 유형을 가져오는 방법 - Vue 3 (0) | 2023.09.03 |
프리즘 유형 스크립트 안에 조항이 포함되어 있습니까? (0) | 2023.09.02 |