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
+ ```