Dockerfile
FROM ubuntu:16.04
RUN locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:en
ENV LC_ALL ja_JP.UTF-8
ENV MOZ_HEADLESS 1
RUN apt-get update \
&& apt-get -y install bzip2 wget firefox language-pack-ja fonts-ipafont-gothic fonts-ipafont-mincho \
&& wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh \
&& chmod +x Anaconda3-4.4.0-Linux-x86_64.sh \
&& ./Anaconda3-4.4.0-Linux-x86_64.sh -b -p /opt/anaconda \
&& /bin/bash -c "source /opt/anaconda/bin/activate && pip install selenium" \
&& wget https://github.com/mozilla/geckodriver/releases/download/v0.19.0/geckodriver-v0.19.0-linux64.tar.gz \
&& tar -xvzf geckodriver-v0.19.0-linux64.tar.gz \
&& chmod +x geckodriver \
&& cp geckodriver /usr/local/bin/
CMD "/bin/bash"
コンテナをビルドするには以下のコマンドを実行します。docker build -t ub1604headlessff .
コンテナ内で実行するpythonスクリプト(以下のsample.py)はdatサブディレクトリ内に保存します。sample.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get('https://www.google.co.jp/')
input = driver.find_element_by_name('q')
input.send_keys('selenium')
input.submit()
RESULTS_LOCATOR = "//div/h3/a"
WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.XPATH, RESULTS_LOCATOR)))
# get screen shot
driver.save_screenshot('screenshot1.png')
print("quit")
driver.quit()
サンプルスクリプトをコンテナ内で実行するには、以下のコマンドを実行します。
docker run -v `pwd`/dat:/dat --rm -i -t ub1604headlessff
コンテナに入った後に、以下のコマンドを実行します。
source /opt/anaconda/bin/activate
cd /dat && python sample.py
○関連項目VagrantでSeleniumとheadlessモードのfirefoxがインストールされた仮想マシンを構築する
0 件のコメント:
コメントを投稿