前回は、「7.importについて確認せよ」について投稿しました。
今回は、実際に seleniumで Google Chromeブラウザを開いて、あるサイトを表示し、閉じるまでをコーディングしたいと思います。
必要なパッケージを importする。
1 : #各コンポーネントをインポート
2 : from selenium import webdriver
3 : from selenium.webdriver.chrome import service
4 : from webdriver_manager.chrome import ChromeDriverManager
詳細処理説明
2: seleniumライブラリの webdriverパッケージをインポートしています。
3: seleniumライブラリの serviceモジュールをインポートしています。
- Chromeブラウザ起動時に直接 executable_pathを引数として渡していましたが、これは現在非推奨となっていて Serviceオブジェクト介して渡す必要があるので、この serviceモジュールをインポートしています。
4: webdriver_managerの chromeモジュールをインポートしています。
- chromeドライバーの自動更新を実現するため、ドライバー管理ソフトウェアであるwebdriver_managerライブラリをインポートしています。
定数を定義します。
Pythonでは、定数はサポートされていませんが、慣例的に大文字とアンダーバーで定数であることを表すようです。
6 : #--定数----------------
7 : LOGIN_URL = "https://google.com" #ログイン画面のURL
7: ログインURLを定数として定義しています。
main処理
mainサブで主要な処理をコーディングしています。
9: #---------------------
10: # main処理
11: #---------------------
12: def main():
13: #Serviceオブジェクトを介して、execute_pathを指定する。
14: chrome_service = service.Service(executable_path=ChromeDriverManager().install())
15: #chromeドライバー セッション開始(最新Ver自動インストール、およびオプション指定)
16: driver = webdriver.Chrome(service=chrome_service, options=getOptions())
17: #サイトを表示する。
18: driver.get(LOGIN_URL)
19: #chromeドライバー セッション終了
20: driver.quit()
処理詳細説明
14: Chromeドライバーの在り処である executable_pathを Serviceクラスに渡して serviceオブジェクトを生成します。
20: Chromeブラウザを閉じます。
Chromeドライバの Optionを設定するファンクション
ブラウザを開く際に引数に渡している Options値を指定して返すファンクションです。今後、複数のOption値設定を考慮してファンクションにしました。
24: #---------------------
25: # SubRoutine
26: #---------------------
27: #--Get ChromeDriver Options------
28: def getOptions():
29: options = webdriver.ChromeOptions()
30: options.headless = False #ヘッドレスモード True:ブラウザ画面非表示、False:表示
31:
32: return options
headlessプロパティで、ブラウザを開いた際に表示するか、それとも非表示にするかを指定できます。本番では、非表示にしますが、開発時はデバッグしやすいようFalse(非表示)を設定して表示するようにしています。
reserveLesson.pyの全容
#各コンポーネントをインポート
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.chrome import ChromeDriverManager
#--定数----------------
LOGIN_URL = "https://google.com" #ログイン画面のURL
#---------------------
# main処理
#---------------------
def main():
#Serviceオブジェクトを介して、execute_pathを指定する。
chrome_service = service.Service(executable_path=ChromeDriverManager().install())
#chromeドライバー セッション開始(最新Ver自動インストール、およびオプション指定)
driver = webdriver.Chrome(service=chrome_service, options=getOptions())
webdriver.chrome.webdriver.service
#サイトを表示する。
driver.get(LOGIN_URL)
#chromeドライバー セッション終了
driver.quit()
#---------------------
# SubRoutine
#---------------------
#--Get ChromeDriver Options------
def getOptions():
options = webdriver.ChromeOptions()
options.headless = False #ヘッドレスモード True:ブラウザ画面非表示、False:表示
return options
#-------------------------------
# スクリプト実行時に mainサブコール
#-------------------------------
if __name__ == '__main__':
main()
今回は、ブラウザを開き、サイトを表示して閉じる。ところまでできました。
次回は、ブラウザの検証機能を使用して要素を確認しつつ、ログインするところまでできればなと思います。では、良い1日を!