import os
import unittest
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class SampleTest(unittest.TestCase):
# テスト前処理: ドライバ設定
def setUp(self):
self.driver = webdriver.Remote(
command_executor=os.environ["SELENIUM_URL"],
desired_capabilities=DesiredCapabilities.CHROME.copy()
)
# テスト後処理:ドライバクローズ
def tearDown(self):
self.driver.quit()
# Qiita検索 テスト
def test_qiita_search(self):
# 任意のHTMLの要素が特定の状態になるまで待つ
# ドライバとタイムアウト値を指定
wait = WebDriverWait(self.driver, 10)
# テスト対象へアクセス
self.driver.get("https://qiita.com/")
# 検索ボックス入力→検索実行
self.driver.find_element(By.NAME, "q").send_keys(
"selenium" + Keys.RETURN)
# 1件目の検索結果を取得(描画されるまで待機)
first_result = wait.until(
presence_of_element_located((By.CSS_SELECTOR, "h1")))
print("first_result:"+first_result.get_attribute("textContent"))
# タイトルに`selenium`が含まれるかを判定
assert "selenium" in (
first_result.get_attribute("textContent")).lower()
if __name__ == '__main__':
unittest.main()