seleniumを使ったスクレイピング(Python)
手順
seleniumのインストール
pip install selenium
WebDriverのインストール
Seleniumのサイトから各種ブラウザのWebDriverをダウンロードすることができます。
Google Chrome Driverを使いましたが、 自動テストにはPhantomJSの方が便利かもしれません。
Downloads - ChromeDriver - WebDriver for Chrome
使う
ボタン押下などの操作を記述することもできます。
driver = webdriver.Chrome(ダウンロードしたWebDriverのパス) # Web APIを使ってDOMアクセスする # driver.open(アクセスする対象URL) # elem = driver.find_element_by_id(ID) # テキスト要素取得 #elem.text # ブラウザを閉じる driver.quit()
Tips
XPathの書き方
# ドキュメントルートから要素を検索します driver. find_elements_by_xpath(‘//div[@class=“container”]) element = driver.find_element_by_id(‘top’) # 子要素から対象のXPath要素を検索します element.find_elements_by_xpath(‘.//div[@class=“container”]) # ドキュメントルートから対象のXPath要素を検索します element.find_elements_by_xpath(‘//div[@class=“container”])
要素がない場合の処理
要素がない場合は、NoSuchElementExceptionがストーされるので処理します。
# 例外のimportが必要 from selenium.common.exceptions import NoSuchElementException try: elemement = driver.find_element_by_class_name(クラス名) 処理 except NoSuchElementException: 例外発生時の処理
スクリーンショット
エビデンスを残す場合に便利です。不具合が発生した時に確認するのには便利ですが、開発時にチェックするのは…あれですね。
driver.save_screenshot(“scenario_1-1")
ソース取得
回帰テストに使えます。
driver. page_source