seleniumの環境構築と簡単な使い方
- 今は日曜日の夜2時
- 環境構築
- Youtubeで「YUI」と検索する操作をseleniumを使ってやってみる
- クリックもできるselenium
- id要素以外の見つけ方
- けっこう簡単だったselenium
今は日曜日の夜2時
早く寝ないと!!
明日は仕事なんです。
急いで書くのでぶっきらぼうな今日は文章になるかもです。
何とかブログだけ書いてさっさと寝ます。
環境構築
pipでインストール可能です。
pip install selenium
seleniumはAPIを通じてブラウザを使用するため、seleniumとは別にブラウザ用のドライバーをインストールする必要があります。
Safari、Firefox、Chrome、Edge、どれでも好きなブラウザのドライバーの圧縮ファイルをHPからダウンロードでき、私はChromeを選択しました。
ダウンロードした圧縮ファイルを解凍するとChromedriverというファイルが現れます。
これをseleniumを使用するファイルと同じフォルダに入れておきます。
公式HPにはPATHを通すと書いてあったが、そこは本人の自由。
私は面倒だったので、そのままコードの中にChromedriverの位置を書きました。
ここらへんの環境構築にちょっと苦労しました。
Youtubeで「YUI」と検索する操作をseleniumを使ってやってみる
#unittestは単体テスト用のライブラリ。 #動作の開始から終了までの時間を計測してくれるので、なんとなく使用。 import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class PythonOrgSearch(unittest.TestCase): def setUp(self): #pwdでカレントディレクトリを確認。 #カレントディレクトリの場所をそのまま記述。 #seleniumを実行するファイルとChromedriverを同じ場所に格納が楽。 self.driver = webdriver.Chrome("/home/ubuntu/serv/robo/chromedriver") def test_serch_in_python_org(self): driver = self.driver #youtubeのURL #driverの中にはサイトの構造がHTMLとして格納されている。 driver.get("https://www.youtube.com/") #youtubeの検索バーはid="masthead-search-term" #find_element_by_idで検索バーのidを取得してくる elem = driver.find_element_by_id("masthead-search-term") #yuiと検索 elem.send_keys("yui", Keys.RETURN) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
ちなみに、youtubeのサイト構造の画像。
id="masthead-search-term"が検索バーであることがわかります。
クリックもできるselenium
クリックを自動で行いときは.click()で可能。
方法はだいたいさっきと同じで、HTMLからクリックしたい要素のidを探して.click()をつけたします。
driver.find_element_by_id("about").click()
公式サイトを見るとドラッグ・アンド・ドロップもできるみたいだが、どの場面でドラッグ・アンド・ドロップを使うのかは私には思いつかない...