Selenium은 헤드리스 브라우저 테스트를 지원합니까?
현재 Selenium Server를보고 있는데 헤드리스 브라우저 테스트를 지원하는 드라이버가없는 것 같습니다.
내가 착각하지 않는 한 지원하지 않습니다. X를 사용하는 경우 가상 프레임 버퍼를 만들어 브라우저 창을 숨길 수 있지만 실제로는 헤드리스 브라우저가 아닙니다.
누구든지 나를 깨달을 수 있습니까? Selenium은 헤드리스 브라우저 테스트를 지원합니까?
Selenium의 대안으로 PhantomJS를 사용할 필요가 없습니다. Selenium에는 GhostDriver 플랫폼을 기반으로하는 PhantomJS 웹 드라이버 클래스가 포함되어 있습니다. PhantomJS 바이너리를 컴퓨터에 설치하기 만하면됩니다. 파이썬에서는 다음을 사용할 수 있습니다.
from selenium import webdriver
dr = webdriver.PhantomJS()
그리고 짜잔.
WebDriver API는 테스트를위한 브라우저로 HTMLUnit을 지원합니다. 루비 사람들은 헤드리스 셀레늄 테스트를 위해 한동안 카피 바라를 사용해 왔으므로 확실히 할 수 있습니다.
나는 이것이 오래된 게시물이라는 것을 알고 있습니다. 답을 찾는 다른 사람들에게 도움이 될 것이라고 생각했습니다.
XVFB를 사용하여 모든 리눅스 배포판에 완전한 파이어 폭스를 설치할 수 있습니다. 이렇게하면 실제 브라우저에서 테스트가 수행됩니다. 헤드리스 설정이 있으면 원하는 웹 드라이버를 사용하여 연결하고 테스트를 실행할 수 있습니다.
나는 X 프레임 버퍼를 사용하는 것이 진정한 헤드리스 솔루션이 아니라는 것을 알고 있지만 대부분의 경우 수용 가능하다고 생각합니다. 또한 이 서비스 는 솔루션에 관심이있는 경우 해당 서비스를 제공하는 데 도움 이 됩니다.
헤드리스 브라우저는 나쁜 생각입니다. 그들은 당신에게 얻을 몇 가지 실제 사용자가 볼 것 같은 테스트, 아무것도하지만, 그들은 단지 많은 문제 마스크 실제 브라우저가 발생합니다. 헤드리스 환경 ( 예 : Windows 또는 Linux와 XVFB) 에서 "헤딩"브라우저 ( 즉 , HTMLUnit 이외의 모든 것)를 사용하는 것이 훨씬 좋습니다 .
Selenium은 어떤 방식 으로든 헤드리스 브라우저 테스트를 지원합니다. Docker Selenium 은 SeleniumHQ 에서 관리합니다. 이러한 도커 컨테이너에는 xvfb 지원이 기본 제공됩니다. Selenium과 연결할 수있는 PhantomJS와 같은 도구가 있습니다. 그러나 Selenium 자체는 공식적으로 지원하지 않습니다.
다른 사람들이 설명한 것처럼 PhantomJS는 실제로 권장되지 않습니다. Selenium의 요점은 브라우저를 자동화하는 것입니다. 하지만 아무도 사용하지 않는 브라우저를 자동화하는 이유는 무엇입니까? 개발자들이 그렇게 자주 간과하는 방법을 이해하지 못했습니다 ..
예. Selenium은 헤드리스 브라우저 테스트를 지원하며 더 빠르고 많은 양의 테스트 케이스 실행에 편리합니다.
ChromeOptions cromeOptions = new ChromeOptions();
//Location of browser binary/.exe file
cromeOptions.setBinary("/usr/bin/google-chrome-stable");
cromeOptions.addArguments("--headless");
cromeOptions.addArguments("--no-sandbox");
cromeOptions.addArguments("--disable-gpu");
cromeOptions.addArguments("--window-size=1920,1080");
WebDriver webDriver = new ChromeDriver(cromeOptions);
예, 셀레늄은 헤드리스 브라우저 테스트를 지원합니다 ...하지만 HTMLUnit이 대부분 실패하는 것을 발견했습니다 ... 대안을 찾고있었습니다 ... PhantomJs 정말 좋았습니다. 다른 브라우저와 비교할 때 매우 빠르다는 것을 확실히 시도해 볼 수 있습니다. ... 연기 테스트에 정말 좋습니다 ...
루비와 macOS를 사용하는 brew install phantomjs
경우 :
driver = Selenium::WebDriver.for :phantomjs
예 Selenium은 헤드리스 브라우저 테스트를 지원합니다. 헤드리스 브라우저는 실시간 브라우저보다 빠릅니다.
테스트가 트리거되는 Linux 서버에 설치 chromeDriver
하고 google-chrome-stable
버전을 지정하고 코드에 동일한 바이너리를 추가합니다.
코드 스 니펫 :
private static String driverPath = "/usr/bin/chromedriver";
static
{
System.setProperty("webdriver.chrome.driver", driverPath);
options = new ChromeOptions();
options.setBinary("/usr/bin/google-chrome-stable");
options.addArguments("headless");
driver = new ChromeDriver(options);
}
다음은 Django / Python을 실행하는 Ubuntu Linux 환경에서 xvfb 및 Firefox 드라이버와 함께 Selenium을 사용하는 방법에 대한 "최신 답변"입니다.
# install xvfb and Firefox driver
sudo su
apt-get install -y xvfb firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
tar -x geckodriver -zf geckodriver-v0.19.1-linux64.tar.gz -O >
/usr/bin/geckodriver
chmod +x /usr/bin/geckodriver
# install pip modules
pip install selenium
pip install PyVirtualDisplay
그런 다음 Django LiveServerTestCase 지침 을 따를 수 있습니다 .
방금 설치 한 드라이버를 사용하려면 다음과 같이하십시오.
from pyvirtualdisplay import Display
from selenium.webdriver.firefox.webdriver import WebDriver
driver = WebDriver(executable_path='/usr/bin/geckodriver')
display = Display(visible=0, size=(800, 600)).start()
# add your testing classes here...
driver.quit()
display.stop()
참고 URL : https://stackoverflow.com/questions/7568899/does-selenium-support-headless-browser-testing
'Program Tip' 카테고리의 다른 글
Python 스크립트에서 사용할 암호를 안전하게 저장 (0) | 2020.11.02 |
---|---|
Selenium 오류-원격 WebDriver에 대한 HTTP 요청이 60 초 후에 시간 초과되었습니다. (0) | 2020.11.02 |
jsFiddle로 두 개 이상의 프레임 워크를 선택하려면 어떻게해야합니까? (0) | 2020.11.02 |
SVG에서 텍스트 정렬 (0) | 2020.11.02 |
PHP의 명령 줄 암호 프롬프트 (0) | 2020.11.02 |