Windows 10 + Python3 + selenium + chromedriver + headless chrome で Fessの検索画面を操作してみる

# 目的
ドロップダウンの操作もかねてFessの検索画面を操作してみる
Freeは[ローカルで動かしているもの](https://qiita.com/tabizou/items/9747d270246c0485b905)を使用
[Windows 10 Pro x64 + Python3 で selenium + chromedriver でFessの検索画面を操作してみる](https://qiita.com/tabizou/items/c74f5bdefdde6a510fa4)
を headless chrome を使用するように書き換えてみる
## サンプルコード
### 対象とするhtmlの抜粋
<pre>
&lt;h3 id="searchOptionsLabel"&gt;
	検索オプション
&lt;/h3
ドロップダウン
&lt;fieldset class="form-group"&gt;
	&lt;label for="contentNum"&gt;表示件数&lt;/label&gt;
	&lt;select name="num" id="numSearchOption" class="form-control"&gt;&lt;option value="10"&gt;
			- 表示件数 -
		&lt;/option&gt;
		&lt;option value="10" selected="selected"&gt;10&lt;/option&gt;
		&lt;option value="20"&gt;20&lt;/option&gt;
		&lt;option value="30"&gt;30&lt;/option&gt;
		&lt;option value="40"&gt;40&lt;/option&gt;
		&lt;option value="50"&gt;50&lt;/option&gt;
		&lt;option value="100"&gt;100&lt;/option&gt;&lt;/select&gt;
&lt;/fieldset&gt;
検索ワードの入力
&lt;div class="clearfix"&gt;
	&lt;div class="mx-auto col-10 col-sm-8 col-md-8 col-lg-6"&gt;
		&lt;input type="text" name="q" maxlength="1000" size="50" value="" 
		id="contentQuery" class="query form-control center-block"
		autocomplete="off"&gt;
	&lt;/div&gt;
&lt;/div&gt;
検索ボタンクリック
&lt;button type="submit" name="search" id="searchButton"
	class="btn btn-primary"&gt;
	&lt;i class="fa fa-search"&gt;&lt;/i&gt;
	検索
&lt;/button&gt;
検索結果
&lt;h3 class="title text-truncate"&gt;
 &lt;a class="link" href="http://xxx.xxx.xxx.xxx/pgsql12/monitoring-ps.html"
 data-uri="http://xxx.xxx.xxx.xxx/pgsql12/monitoring-ps.html"
 data-id="f134efea76bf4e019bb4dac4fb9b87e4" data-order="0"&gt;27.1. 標準的なUnixツール&lt;/a&gt;
&lt;/h3&gt;
</pre>
### コード
```python
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import chromedriver_binary

# ブラウザーを起動
options = Options()
options.binary_location = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)

driver.get('http://xxx.xxx.xxx.xxx:8080')

try:
    # 検索オプション 画面の表示
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, 'searchOptionsButton'))
    )
    element.click()

    # 表示件数の選択
    elms = WebDriverWait(driver, 4).until(
        EC.presence_of_element_located((By.ID, 'numSearchOption'))
    )
    elm = Select(elms).select_by_value('20')
    em = driver.find_element_by_name('num')
    print('表示件数:' + em.get_attribute('value'))
    # 表示件数:20

    # 検索ワードの入力
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, 'contentQuery'))
    )
    element.send_keys('Postgres')
    element.submit()

    # 検索ボタンクリック
    elm = driver.find_element_by_id('searchButton')
    elm.click()

    # 検索結果を取得する->classに記述されている属性のリストが作成される
    em = driver.find_elements_by_class_name('link')
    for item in em:
        print(item.get_attribute('data-order').rjust(2, '0') + ':' \
             +item.get_attribute('href')) 
    # 00:http://xxx.xxx.xxx.xxx/pgsql12/monitoring-ps.html
    # ～
    # 19:http://xxx.xxx.xxx.xxx/pgsql12/docguide-build.html

    time.sleep(2) # 表示確認用のwait
finally:
    driver.quit()
```
# 参考にしたのは以下のサイト
[Windows 10 Pro x64 + Python3 で selenium + chromedriver でFessの検索画面を操作してみる](https://qiita.com/tabizou/items/c74f5bdefdde6a510fa4)