#目的
Windows10 + Python3 + selenium + chromedriver + headless chrome で Elasticsearchの plugin 用のサイトをアクセスしてみる
Fessのメンテや新規インストール時にElasticsearchのpluginのバージョンチェックが楽にできないかな?
とりあえずのテストコードを作成
※仕様は未定 plugin は決め打ちなので直接みに行けばいいんじゃないかと
org/codelibsをローカルに保存してテストを行う
#サンプルコード
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
# plugin のリスト
alist = [
'elasticsearch-analysis-extension/',
'elasticsearch-analysis-fess/',
'elasticsearch-configsync/',
'elasticsearch-dataformat/',
'elasticsearch-minhash/'
]
# ブラウザーを起動
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('https://repo1.maven.org/maven2/org/codelibs/')
# 上記をローカルに保存
driver.get('http://localhost:8080/codelibs.html')
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.TAG_NAME, 'a'))
)
# xpath はこれで良いのだろうか?
xpath = "/html/body/main/pre/a"
elems = driver.find_elements_by_xpath(xpath)
# listに存在する link text を表示する
for elem in elems:
if elem.text in alist:
print(elem.text)
finally:
print('done')
driver.quit()
#参考にしたサイトはこちら
WebElement 内部を find_element_by_xpath() で再検索した時のつまずき
Python/Seleniumで便利なxpath検索をする方法!