ブラウザ を自動操作して UI のテストができる。
便利だと思うのが、自動ログインとスクリーンショット機能。
また、chrome、firefox で headless モードが搭載されるようになり、
ブラウザを表示させずに画面キャプチャが可能だったりする。
pip install selenium
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
options = Options()
# Chromeのパス(Stableチャネルで--headlessが使えるようになったら不要なはず)
options.binary_location = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
# ヘッドレスモードを有効にする(次の行をコメントアウトすると画面が表示される)。
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--window-size=1920,1080')
# ChromeのWebDriverオブジェクトを作成する。
driver = webdriver.Chrome(chrome_options=options)
# Googleのトップ画面を開く。
driver.get('https://aipo.sekiken.xyz/')
# タイトルに'Aipo'が含まれていることを確認する。
assert 'Aipo' in driver.title
# 入力して送信する。
username = driver.find_element_by_name('member_username')
username.send_keys('z20615**')
driver.save_screenshot('Aipo_Login1.png')
password = driver.find_element_by_id('password')
password.send_keys('********')
driver.save_screenshot('Aipo_Login2.png')
password.send_keys(Keys.RETURN)
time.sleep(2) # Chromeの場合はAjaxで遷移するので、とりあえず適当に2秒待つ。
# タイトルに'Python'が含まれていることを確認する。
#assert 'Python' in driver.title
# スクリーンショットを撮る。
driver.save_screenshot('Aipo_Login3.png')
time.sleep(2) # Chromeの場合はAjaxで遷移するので、とりあえず適当に2秒待つ。
driver.quit() # ブラウザーを終了する。