今回は、Python、seleniumでのウインドウハンドル取得方法についての説明になります。
ウインドウハンドルとはウインドウごとに割り当てられている識別情報のことですが、seleniumでは、ウインドウの切替を行う場合には、この番号を使用して、switch_to_window(ウインドウハンドル)とすることで、制御対象のウインドウの切替を行います。
ウインドウハンドルの取得方法としては、今現在の制御対象のカレントウインドウハンドルを取得する方法と、現在のブラウザのドライバーがもっているすべてのウインドウハンドルを取得する方法があります。
目次
はじめに、カレントウインドウハンドルの取得例は以下のようなものになります。
1.カレントウインドウハンドル取得例
driver.current_window_handle
これにてブラウザーのドライバーのカレントウインドウハンドルが取得できます。
これに、ライブラリのインポートなど含めた簡単な使用例は以下のようなものになります。
Google検索画面が開き、カレントウインドウハンドルを取得してプリントするという内容になります。
(Edge用のドライバーmsedgedriver.exeは同じフォルダに入れた状態で実行)
from selenium import webdriver import os from selenium.webdriver.chrome import service as fs ###################################################################### path_driver = os.getcwd()+'\msedgedriver.exe' # ドライバー指定でEdgeブラウザを開く edge_service = fs.Service(executable_path=path_driver) driver = webdriver.Edge(service=edge_service) ###################################################################### driver.get('https://www.google.com/')
#カレントウインドウハンドルを取得して表示 print(driver.current_window_handle)
次に、現在のドライバが持っているすべてのウインドウハンドルの取得例は以下のようなものになります。
2.すべてのウインドウハンドル取得例
driver.window_handles
これにてブラウザーのドライバーが持っているすべてのウインドウハンドルが取得できます。
先程と同様、これに、ライブラリのインポートなど含めた簡単な使用例は以下のようなものになります。
Google検索画面が開き、ドライバーのすべてのウインドウハンドルを取得してプリントするという内容になります。
(Edge用のドライバーmsedgedriver.exeは同じフォルダに入れた状態で実行)
from selenium import webdriver import os from selenium.webdriver.chrome import service as fs ###################################################################### path_driver = os.getcwd()+'\msedgedriver.exe' # ドライバー指定でEdgeブラウザを開く edge_service = fs.Service(executable_path=path_driver) driver = webdriver.Edge(service=edge_service) ###################################################################### driver.get('https://www.google.com/')
#ドライバーがもっているのすべてのウインドウハンドルを取得して表示 print(driver.window_handles)
以上がドライバーの制御対象のカレントウインドウハンドルとすべてのウインドウハンドルの取得方法になります。
また、PythonにてSeleniumを活用してスクレイピング、RPA化などを行っていく場合に必要となりそうな内容の記事を一覧として以下にまとめましたのでよかったらご参照ください。
関連記事:
【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録
【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録
【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録
【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録
【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録
【Python Selenium】Webサイトのスクレイピングなどで必要なフレーム間移動方法 - Django Girls and Boys 備忘録
【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール方法 - Django Girls and Boys 備忘録
【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録
【Python Selenium】新規ウインドウ追加時のウインドウ切替方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録
【Python Selenium】新規ウインドウ(新規タブ)追加時のウインドウ切替方法(追加ハンドルをハンドル差異比較にて取得) - Django Girls and Boys 備忘録
【python】実行時に表示されるコンソールウインドウを非表示にする方法 - Django Girls and Boys 備忘録
【Python Selenium】Webサイトのソースコードをファイル保存する方法 - Django Girls and Boys 備忘録
【Python Selenium】EdgeのI.E.モード操作の事前準備での設定 - Django Girls and Boys 備忘録
【Python Selenium】EdgeのI.E.モードでブラウザ操作する場合のドライバー設定方法と簡単な起動例 - Django Girls and Boys 備忘録
【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録
【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法 - Django Girls and Boys 備忘録
【Python Seleuium】ブラウザの拡大率の設定変更 - Django Girls and Boys 備忘録
【Python Selenium】EdgeのI.E.モードのドライバー設定での拡大率、保護モード設定チェックを無視する方法 - Django Girls and Boys 備忘録
【Python】ログイン中のユーザ名を取得する方法 - Django Girls and Boys 備忘録
【Python Selenium】クローリング、スクレイピングにて対象ウインドウのソースコードを調べる方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウのURLを指定して画面展開する方法と現在表示されているウインドウのURLとタイトルを取得する方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウハンドル取得方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ内の要素取得、キーボード入力などする方法(name属性、id属性、class属性) - Django Girls and Boys 備忘録