docker로 로컬 네트워크 전용으로 selenium 서버 세워 브라우저에서 동작을 확인할 수 있도록 구축했다
딱 좋은 집 고등어(NAS 용도 메인)가 있으므로, 거기에 Selenium 서버를 구축시키고 싶다.
그렇다고 동작을 확인할 수 없다면 그것도 불편하기 때문에 뭔가 방법으로 동작도 보고 싶다.
라고 여기까지 생각했을 때와 있는 곳에서, 브라우저로부터 Selenium의 동작을 볼 수 있는 시스템을 보았다.
여러가지 조사하면 guacamole이라는 오픈 소스가 VNC등의 프로토콜을 HTTP에 포워드 할 수 있는 것 같다.
그래서 다음부터 본제.
사용할 Docker 이미지
selenium
공식적으로 webdriver+browser+vncserver를 번들한 이미지가 몇 가지 제공되고 있다.
htps : // 기주 b. 코 m / 세이 니 mHQ / 도 c 케 루 세 니 m
selenium/standalone-chrome
selenium/standalone-firefox
selenium이 이번부터(단독으로 움직여 vnc 클라이언트로부터 확인해도 좋다)
guacamole
이것도 공식에서
ぇtps://구아지도. 아파치. 오 rg/도 c/구 g/구아지도 ぇ도 c케 r. HTML
guacamole/guacd
guacamole/guacamole
하고 싶은 곳이지만 최신 이미지라면 클라이언트 인증이 필수이므로 db 이미지도 필요합니다.
어느 정도 공개되는 서비스라면 당연히 필수가 될 것이라고 생각합니다만, 로컬 네트워크 정도라면 인증 따위 따로 필요하지 않다,
라고 생각하면
noauth
라는 확장이 있었던 것 같다. (1.0 이후는 없어졌다)ぇtps://구아지도. 아파치. rg/c/0.9.9/g/의 th. HTML
이 경우 noauth를 사용할 수있는 그대로의 docker 이미지는 없으므로,
ぇtps://구아지도. 아파치. 오 rg/레아세 s/
noauth 를 사용할 수 있다
0.9.14
를 사용한다.guacamole/guacd:0.9.14
guacamole/guacamole:0.9.14
(guacd 쪽도 버전 맞춘다.)guacamole의 Dockerfile
그렇다면 noauth의 확장을 넣은 guacamole 이미지를 만듭니다.
noauth-extension
확장 및 설정 파일을 이미지에 복사하므로 적절한 폴더를 만듭니다. 여기에서는
./guacamole
라는 이름으로 하자.ぇtps://구아지도. 아파치. rg/레아세 s/0.9.14/
guacamole-auth-noauth-0.9.14.tar.gz
다운로드 및 압축 해제.내용은 jar 파일이므로 위의 폴더 아래에
extensions
라는 폴더를 만들어 거기에 넣는다../guacamole/extensions/guacamole-auth-noauth-0.9.14.jar
↑라는 배치로 한다.guacamole, noauth-config.xml
각 selenium의 vnc와 접속하는 설정 파일도 필요하므로,
./guacamole
에 배치../guacamole/noauth-config.xml
↑라는 상태.내용은
noauth-config.xml
<configs>
<config name="google chrome" protocol="vnc">
<param name="hostname" value="chrome" />
<param name="port" value="5900" />
<param name="password" value="secret" />
</config>
<config name="firefox" protocol="vnc">
<param name="hostname" value="firefox" />
<param name="port" value="5900" />
<param name="password" value="secret" />
</config>
</configs>
이제 OK
Dockerfile
그런 다음 guacamole 폴더를 기본 이미지에 넣고
GUACAMOLE_HOME
를 설정합니다.FROM guacamole/guacamole:0.9.14
COPY guacamole /etc/guacamole
ENV GUACAMOLE_HOME /etc/guacamole
EXPOSE 8080
이 8080 포트는 웹 액세스용의 포트, 만약 다른 곳에서 사용되고 있는 경우는 변경해 봅시다.
docker-compose
그리고는 docker-compose로 움직일 뿐.
docker-compose.yml
version: '3'
services:
guacd:
image: guacamole/guacd:0.9.14
restart: unless-stopped
guacamole:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "8080:8080"
links:
- guacd
environment:
GUACD_HOSTNAME: guacd
chrome:
image: selenium/standalone-chrome-debug
restart: unless-stopped
ports:
- "4444:4444"
firefox:
image: selenium/standalone-firefox-debug
restart: unless-stopped
ports:
- "4445:4444"
포트
8080
→HTTP용
4444
→selenium-remote chrome용
4445
→selenium-remote firefox용
docker-compose up -d
에서 일어나면 같은 네트워크의 브라우저에서http://[ip or host]:8080/guacamole
으로 접속.(루트는 tomcat 페이지가 나옵니다.)
이런 식으로 나오네요.
그리고는 어느 브라우저인지 선택하고, selenum을 remote로 연결하면 브라우저가 일어난다.
루비에서 selenum-remote (chrome) : 덤
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :remote, url: "http://[host or ip]:4444/wd/hub", desired_capabilities: :chrome
driver.get "https://www.google.com"
참고
참고로 했습니다. 감사합니다.
htps : // m / S_sen Sq / ms / 758 ~ b에서 01 ~ 801 ~ 2d1624
Reference
이 문제에 관하여(docker로 로컬 네트워크 전용으로 selenium 서버 세워 브라우저에서 동작을 확인할 수 있도록 구축했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hatobeam75/items/a73ee8d35eafb403f607텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)