selenium 4.11.0から標準化 chromedriver 不要
生成した実行ファイルと同じ位置にchromedriver.exeがいた場合は、インスタンス生成の際、そちらを参照するので注意が必要
初期設定は下記の感じかな。Optionはお好みで。
from selenium.webdriver.common.by import By による検索が推奨されています。
# -*- coding: utf-8 -*-
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.common.by import By
# Chrome オプション設定
options = webdriver.ChromeOptions()
# ヘッドレスで起動するオプションを指定
#options.add_argument("--headless")
# シェアドメモリファイルの保持場所 tmp になる
#options.add_argument("--disable-dev-shm-usage")
# サンドボックスなし
#options.add_argument("--no-sandbox")
# 拡張オプション設定
## あらかじめCRXファイルを取得しておこう(Chrome拡張機能管理→デベロッパーモード)
##extension_path = r"C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Extensions\hogehoge\version"
##options.add_argument(f'load-extension={extension_path}')
## enable-logging : DevToolsのログ無効
## enable-automation : テスト実行警告非表示
options.add_experimental_option("excludeSwitches", ['enable-logging', 'enable-automation'])
# ダウンロードフォルダ指定
#options.add_experimental_option("prefs", {"download.default_directory" : "download_folder_path"})
# ドライバー生成
## オプションなし
#driver = webdriver.Chrome()
## オプションあり
driver = webdriver.Chrome(options=options)
# 明示的な待機 180秒待ち
driver.implicitly_wait(180)
# ページロードタイムアウト
driver.set_page_load_timeout(60)
クラス化すると下記の感じかな
# -*- coding: utf-8 -*-
import chromedriver_binary
from selenium import webdriver
class WebDriver :
def __init__(self) :
"""
コンストラクタ
"""
# Chrome オプション設定
options = webdriver.ChromeOptions()
# ヘッドレスで起動するオプションを指定
#options.add_argument("--headless")
# シェアドメモリファイルの保持場所 tmp
#options.add_argument("--disable-dev-shm-usage")
# サンドボックスなし
#options.add_argument("--no-sandbox")
# 拡張オプション設定
##
##extension_path = r"C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Extensions\ApplicationCodeString\VersionNumber"
##options.add_argument(f'load-extension={extension_path}')
## enable-logging : DevToolsのログ無効
## enable-automation : テスト実行警告非表示
options.add_experimental_option("excludeSwitches", ['enable-logging', 'enable-automation'])
# ドライバー生成
#self.driver = webdriver.Chrome()
self.driver = webdriver.Chrome(options=options)
# ファイルのダウンロードフォルダを指定する
#chrome_options.add_experimental_option("prefs", {"download.default_directory" : "download_folder_path"})
## 明示的な待機 180秒待ち
#driver.implicitly_wait(180)
# ページロードタイムアウト
self.driver.set_page_load_timeout(3)
def __del__(self):
"""
デストラクタ
"""
if self.driver is not None :
self.driver.close()
self.driver = None
def __enter__(self) :
"""
for with statement
"""
return self
def __exit__(self, ex_type, ex_value, trace):
"""
for with statement
"""
if self.driver is not None :
self.driver.close()
self.driver = None
