Selenium(python3)環境構築

# 作業用VMの準備  

 VirtualBoxにCentOS７をインストールして構築しています。  

- [Oracle VM virtualBoxのインストール](https://www.virtualbox.org/)

- [CentOSのイメージファイルのダウンロード](http://isoredirect.centos.org/centos/7/isos/x86_64/)

   CentOS-7-x86_64-DVD-2009.isoというイメージファイルをダウンロードしました。

- VirtualBoxで仮想マシンを作成

    名前：CentOS 7  
    タイプ：Linux  
    バージョン：Red Hat(64 bit)  
    メモリーサイズ：1GB(1024MB)  
    ハードドライブ：仮想ドライブを作成する  
    ハードドライブのファイルタイプ：VDIファイルの可変サイズ  
    物理ハードドライブにあるストレージ：可変サイズ  
    ファイルの場所とサイズ：16GB  
    起動ディスクの選択：CentOS-7-x86_64-DVD-2009.iso  

- 仮想マシンを起動し、CentOS7をデスクトップでインストール  

    ソフトウェアの選択　[ベース環境]：GNOME Desktop  
    開発リポジトリをつける　[選択した環境のアドオン]：開発ツール  
    インストール先：ATA VBOX HARDDISK  
    ネットワークとホスト名：オンにする。  
    ユーザーを作成する：ユーザー名とパスワードを設定する。  

    [デバイス]-[Guest Additions CDイメージの挿入…]をクリックして[実行する]をクリックする。  
    [デバイス]-[クリップボードの共有]-[双方向]にチェックを入れる。  
    [デバイス]-[ドラッグ＆ドロップ]-[双方向]にチェックを入れる。   
    [VBox_GAs_6.1.18]アイコンを右クリックして[取り出す(E)]  

- CentOS7を再起動する。  

# 作業環境の確認  
   rootユーザーになる。

   ```
   [uchida@localhost ~]$ cat /etc/redhat-release 
   CentOS Linux release 7.9.2009 (Core)
   [uchida@localhost ~]$su -
   パスワード:
   ```  
# ブラウザのインストール　　
   標準ではリポジトリが無いので、以下のviコマンドを実行し、追加する。
   
   ```
   [root@localhost ~]# vi /etc/yum.repos.d/google.chrome.repo
   ```
   [ i ]キーで入力モードに切り替えて以下の設定を貼り付け  
   
   ```
   [google-chrome]
   name=google-chrome
   baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
   enabled=0
   gpgcheck=1
   gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
   ```
   [ Esc ]キーでノーマルモードに切り替え後、[ :wq ]キーで保存して閉じる。  
  
   以下のyumコマンドを実行すると自動的にインストールされる。

   ```
   [root@localhost ~]# yum --enablerepo=google-chrome -y update
   ```
# GoogleChrome本体をインストール

   インストール可能なGoogleChromeのバージョンを確認。
  
   以下のyumコマンドを実行すると

   ```
[root@localhost ~]# yum --enablerepo=google-chrome list google-chrome*
   ```
   chromeのバージョンが表示される。

   ```
   読み込んだプラグイン:fastestmirror, langpacks
   Loading mirror speeds from cached hostfile
    * base: mirrors.cat.net
    * extras: mirrors.cat.net
    * updates: mirrors.cat.net                          
   利用可能なパッケージ
   google-chrome-beta.x86_64                              90.0.4430.72-1                           
   google-chrome 
   google-chrome-stable.x86_64                            90.0.4430.72-1                           
   google-chrome 
   ```
   以下のyumコマンドでchromeをインストール 
 
   ```
   [root@localhost ~]# yum --enablerepo=google-chrome -y install google-chrome
   ```
   chromeが入っていることを確認する。

   ```
   [root@localhost ~]# yum --enablerepo=google-chrome list google-chrome*
   ```
   google-chrome-unstableがインストール済みになっていることがわかる。

   ```
   Loading mirror speeds from cached hostfile
     * base: mirrors.cat.net
     * extras: mirrors.cat.net
     * updates: mirrors.cat.net
  インストール済みパッケージ
   google-chrome-unstable.x86_64                          91.0.4469.4-1                            
   @google-chrome
   利用可能なパッケージ
   google-chrome-beta.x86_64                              90.0.4430.72-1                           
   google-chrome 
   google-chrome-stable.x86_64                            90.0.4430.72-1                           
   google-chrome 
   ```
   日本語フォントをインストール

   ```
   [root@localhost ~]# yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
   ```
   GoogleChromeの起動確認のために、rootユーザーからログアウトする。

   ```
   [root@localhost ~]# exit
   ログアウト
   ```
   GoogleChromeを起動させる。Chromeブラウザが表示されればOK

   ```
   [uchida@localhost ~]$ google-chrome
   ```
# Seleniumのインストール
   rootユーザーになる。

   ```
   [uchida@localhost ~]$ su -
   パスワード:
   最終ログイン: 2021/04/15 (木) 16:49:12 JST日時 pts/0
   ```
   以下のyumコマンドでインストール可能なpythonを確認する。

   ```
   [root@localhost ~]# yum list python*pip
   ```
   python3-pipが利用可能であることがわかる。

   ```
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.cat.net
 * extras: mirrors.cat.net
 * updates: mirrors.cat.net
利用可能なパッケージ
python3-pip.noarch                                 9.0.3-8.el7                                 @base
   ```
   python3をインストールする。

```
[root@localhost ~]# yum -y install python3-pip
```
   python3をアップデートする ※2021年4/15現在では必要な手順です。

```
[root@localhost ~]# pip3 install --upgrade pip
```
   Seleniumをインストールする。

```
[root@localhost ~]# pip install selenium
```
# ChromeDriverのインストール
   以下のpipコマンドを実行する。

```
[root@localhost ~]# pip install chromedriver-binary
```
   インストールされたバージョンの確認。

```
[root@localhost ~]# pip show chromedriver-binary
```
   バージョン90.0.4430のChromeDriverであることが確認できる。

```
Name: chromedriver-binary
Version: 90.0.4430.24.0
...
```
# ChromeDriverのパスを通す
   インストールされたパスの確認。

```
[root@localhost ~]# chromedriver-path
```
   以下のパスが確認でるので、

```
/usr/local/lib/python3.6/site-packages/chromedriver_binary
```
   コピーしてbin直下に張り付ける。

```
[root@localhost ~]# cp /usr/local/lib/python3.6/site-packages/chromedriver_binary/chromedriver /usr/local/bin/chromedriver
```
   ファイルモードを変更し、実行権限を与える。

```
[root@localhost ~]# chmod +x /usr/local/bin/chromedriver
```
# 動作確認
   一般ユーザーで動作確認する。

```
[root@localhost ~]# exit
ログアウト
[uchida@localhost ~]$ chromedriver -v
ChromeDriver 90.0.4430.24 (4c6d850f087da467d926e8eddb76550aed655991-refs/branch-heads/4430@{#429})
```

   python3を実行する。

```
[uchida@localhost ~]$ python3

```
   入力モードになるので、以下を実行する。

```
from selenium import webdriver

options = webdriver.ChromeOptions()
#options.add_argument('--headless') # コメントアウトすることでブラウザ表示
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)

driver.get('https://www.google.co.jp/') #Enterボタンを実行すればGoogle画面が立ち上がる。
```

   Google画面が立ち上がればOK

   対話画面から抜けるのは[Ctrl]+[D]を押下。
   
# （補足）pythonコマンドでpython3を起動させる設定 
 
   現在のversionでは、pythonコマンドを実行すると、python2が起動してしまうので

```
[uchida@localhost ~]$ python --version
Python 2.7.5
[uchida@localhost ~]$ python3 --version
Python 3.6.8
```
   いったんrootユーザーになり、以下のalternativesコマンドで複数のバージョンを共存できるようにする。

```
[uchida@localhost ~]$ su -
パスワード:
最終ログイン: 2021/04/15 (木) 18:02:46 JST日時 pts/0
[root@localhost ~]# update-alternatives --install /bin/python python /bin/python3.6 1
[root@localhost ~]# update-alternatives --install /bin/python python /bin/python2.7 2
```
   設定を変更するために、以下のコマンドを実行後、１を選択する。

```
[root@localhost ~]# alternatives --config python

2 プログラムがあり 'python' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /bin/python3.6
*  2           /bin/python2.7

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1

```
   現在の状態を確認後、pythonコマンドでバージョンを確認する。

```
[root@localhost ~]# alternatives --list | grep python
python	manual	/bin/python3.6
[root@localhost ~]# python --version
Python 3.6.8
```
   再度動作確認を行い、Google画面が表示されればOK

```
[root@localhost ~]# exit
ログアウト
[uchida@localhost ~]$ python

from selenium import webdriver

options = webdriver.ChromeOptions()
#options.add_argument('--headless') # コメントアウトすることでブラウザ表示
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)

driver.get('https://www.google.co.jp/') #Enterボタンを実行すればGoogle画面が立ち上がる。

```
   対話画面から抜けるのは[Ctrl]+[D]を押下。

# （補足）yumコマンドを使えるように修正する
   viコマンドを実行する。

```
[root@localhost ~]# vi /usr/bin/yum
```
   一番上の部分に2をつける。

```
（変更前）
#!/usr/bin/python
（変更後）
#!/usr/bin/python2
```
   同様の処理を以下でも行う。

```
[root@localhost ~]# vi /usr/libexec/urlgrabber-ext-down
```
   一番上の部分に2をつける。

```
（変更前）
#!/usr/bin/python
(変更後)
#!/usr/bin/python2
```