この記事では、selenium の最も便利なメソッドを探ります。
Selenium は自動化のプロセスを簡単にするメソッドをたくさん提供しますが、そのうちのいくつかは一般的には知られていませんが、それでも自動化/スクレイピングのプロセスを簡単かつ効果的にするために便利です。
こちらもお読みください。
モジュールのインポートとWebdriverの初期化
Selenium webdriver はすべてのクラスとメソッドの親クラスです。
webdriver を使って、selenium が提供するすべてのメソッドにアクセスします。
from selenium import webdriver
driver = webdriver.Chrome( "path of webdriver" )
|
webdriverのパス」の代わりに、Chrome()メソッドを使用することもできます。
ブラウザのwebdriverのパスの場所を環境変数として宣言していれば、webdriverのパスのパラメータを渡さずに、コンピュータ上でグローバルに使用できます。
Pythonでブラウザメソッド Selenium
まずは、最も頻繁に使用し、ハンズオンをしっかり行うべきブラウザメソッドから始めましょう。
1. ウェブページを取得する
特定のウェブページを取得するには、getメソッドを使用し、パラメータとしてウェブページのURLを渡します。
driver.get( "https://m.youtube.com" )
|
2. ウェブページのタイトルを取得する
titleメソッドは、現在のページ(ウェブページ)のタイトルを返し、タイトルはコード実行のコンソール/ターミナルに表示されます。
driver.title() |
3. ページ履歴の前後移動
戻る・進むを使い分けることで、ブラウザでウェブページを戻ったり進めたりする作業を自動化することができる
driver.back() driver.forward() |
4. Fullscreenメソッド
このメソッドを呼び出すと、ブラウザ(クローム)のウィンドウをフルスクリーンにすることができます。
driver.fullscreen_window() |
5. 画面上のウィンドウの位置を設定する
このメソッドを使用すると、現在のウィンドウの座標を設定することができます。
このメソッドは、xとyの座標を受け取り、画面上の座標に従って、指定した位置にカレントウィンドウ(python-seleniumのコードで開いたもの)を設定します。
driver.set_window_position( 500 , 500 )
|
画面位置の原点(0,0)は画面の一番左下の部分です。
6. 新しいタブを開く
新しいWebサイトを新しいタブで開くには、execute_script()メソッドを使用します。
以下の例では、最初のウェブサイトであるYouTubeと一緒に、Twitterを新しいタブで開きます。
このメソッドでは、JavaScriptを実行します。
driver.execute_script( "window.open('https://twitter.com')" )
|
7. スクリーンショットの取得
Selenium は、現在のウィンドウのスクリーンショットを撮る方法を提供します。
これは次のメソッドによって行われます。
driver.get_screenshot_as_file( 'ss.png' )
|
このコードを実行すると、同じディレクトリに’ss’という名前の画像が保存されます。
8. ページの更新
Refreshメソッドを使用すると、現在のフレーム/ウェブページを更新することができます。
driver.refresh() |
9. 要素の選択
ウェブページの要素、画像、テキストフィールド、動画、タグなどを選択するには、さまざまな方法やテクニックがあります。
そこで、要素を選択する方法については、別の記事で詳しく解説しています。
おすすめの記事 Seleniumで要素を選択するための様々な方法 – Python
この記事もチェック:PythoのSeleniumを使用して要素を取得する色々な方法を解説する
10. 要素をクリックする
このメソッドは、ボタンやリンクなどのウェブ要素をクリックするために使用されます。
以下のコードでは、まずIDや他のセレクタを使ってリンクやボタンを見つけ、そのウェブ要素に対してclickメソッドを呼び出しています。
elements = driver.find_element_by_id( "id of link or button" )
elements.click() |
11. キー(テキスト)を送信する
このメソッドを使用して、ウェブページの任意のテキストフィールドにテキストを送信することができます。
ここではGmailのテキストボックスのIDを探し、send_keysメソッドでテキストを送信します。
elements = driver.find_element_by_id( "gmail" )
elements.send_keys(“some text we want to send”) |
12. テキストをクリアする
任意の入力欄の文字列をクリアするときに使用します。
elements = driver.find_element_by_id( "gmail" )
elements.send_keys( "some text we want to send" )
elements.clear() |
13. カスタムJavaScriptを使用する
カスタムJavaScriptのコードを送信し、イベントやプロンプトなど、JavaScriptがサポートするさまざまな操作を実行する方法です。
driver.execute_script() #practical code implementation driver.execute_script( "window.open('https://google.com')" )
|
14. ブラウザを閉じずに現在のタブを閉じる
closeメソッドを使用することで、ブラウザを閉じることなく、現在のタブを閉じることができます。
driver.close() |
15. ブラウザを閉じる
quitメソッドでブラウザを閉じることができます。
当然ながら、ブラウザのウィンドウ全体が閉じられ、開いていたタブもすべて閉じられます。
driver.quit() |
16. 時間 – スリープ(Imp.)
これは実際にはSeleniumライブラリに関連する機能やメソッドではありませんが、サイトのロード、他のコードの実行など、何らかのタスクの実行を待つようなさまざまな目的で重宝する、非常に便利なヒントです。
これはtimeモジュールの一部で、すでにpythonのインストールにバンドルされています。
import time
#time.sleep(time to wait (in seconds)) time.sleep( 5 ) #this will let the interpreter wait at this line for 5 seconds and then proceed with execution.
|
結論
チュートリアルは以上です。
Seleniumに関連するさまざまなメソッドと機能があります。
いくつかはSeleniumを使いながら自分で学ぶことができ、いくつかはSeleniumの公式ドキュメントを見て回ることをおすすめします。