09b27821d4f27c4e9b9458072baad72235abb726
Linux/SeleniumDriver.md
... | ... | @@ -0,0 +1,73 @@ |
1 | +[[_TOC_]]
|
|
2 | +
|
|
3 | +Selenium Driver を使って Chrome (headless モード)を自動運転する。
|
|
4 | +
|
|
5 | +# 環境
|
|
6 | +- CentOS Linux release 7.7.1908 (Core)
|
|
7 | +- Google Chrome 79.0.3945.88
|
|
8 | +- ChromeDriver 79.0.3945.36
|
|
9 | +- Python 3.6.8
|
|
10 | +
|
|
11 | +# インストール
|
|
12 | +1. Chrome 用リポジトリ設定を作成
|
|
13 | +/etc/yum.repos.d/google-chrome.repo
|
|
14 | + ```
|
|
15 | + [google-chrome]
|
|
16 | + name=google-chrome
|
|
17 | + baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
|
|
18 | + enabled=1
|
|
19 | + gpgcheck=1
|
|
20 | + gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
|
|
21 | + ```
|
|
22 | +1. Chrome のインストール
|
|
23 | + ```
|
|
24 | + # yum install -y libOSMesa google-noto-cjk-fonts google-chrome-stable
|
|
25 | + ```
|
|
26 | +1. Chrome Driver のインストール (EPELリポジトリ)
|
|
27 | + ```
|
|
28 | + # yum install -y libX11 GConf2 fontconfig lsof chromedriver
|
|
29 | + ```
|
|
30 | +1. バージョン確認
|
|
31 | + ```
|
|
32 | + # google-chrome --version
|
|
33 | + Google Chrome 79.0.3945.88
|
|
34 | + # chromedriver -v
|
|
35 | + ChromeDriver 78.0.3904.108 (...省略...)
|
|
36 | + ```
|
|
37 | +1. Chrome と ChromeDriver のバージョンが異なっている場合は ChromeDriver を手動でダウンロード
|
|
38 | +[Downloads - ChromeDriver - WebDriver for Chrome](https://sites.google.com/a/chromium.org/chromedriver/downloads)
|
|
39 | + ```
|
|
40 | + # yum erase -y chromedriver
|
|
41 | + # wget https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_linux64.zip
|
|
42 | + # unzip chromedriver_linux64.zip
|
|
43 | + # mv chromedriver /usr/bin/
|
|
44 | + # rm chromedriver_linux64.zip
|
|
45 | + # chromedriver -v
|
|
46 | + ChromeDriver 79.0.3945.36 (...省略...)
|
|
47 | + ```
|
|
48 | +1. Chrome が headless モードで動作することを確認
|
|
49 | +エラーが出る場合はオプションを追加してみる: `--disable-gpu`, `--disable-dev-shm-usage`, `--disable-setuid-sandbox`, `--no-sandbox`, `disable-infobars`
|
|
50 | + ```
|
|
51 | + # google-chrome --headless --dump-dom https://www.google.com/
|
|
52 | + ```
|
|
53 | +1. Selenium パッケージのインストール
|
|
54 | + ```
|
|
55 | + # pip3 install selenium
|
|
56 | + ```
|
|
57 | +1. 動作確認
|
|
58 | +testChromeDriver.py
|
|
59 | + ```python
|
|
60 | + #!/bin/python3
|
|
61 | +
|
|
62 | + from selenium import webdriver
|
|
63 | + from selenium.webdriver.chrome.options import Options
|
|
64 | +
|
|
65 | + options = Options()
|
|
66 | + options.add_argument('--headless')
|
|
67 | + #options.add_argument('--disable-gpu')
|
|
68 | + options.add_argument('--window-size=1280,1024')
|
|
69 | + driver = webdriver.Chrome(chrome_options=options)
|
|
70 | + driver.get('https://www.google.co.jp/')
|
|
71 | + print(driver.title) #=> Google
|
|
72 | + driver.save_screenshot('test.png')
|
|
73 | + ```
|