Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium】Seleniumバージョン4の場合のwebdriver自動バージョンアップ方法について

Seleniumのバージョン4の場合のwebdriverの自動バージョンアップの方法の説明になります。

 

Seleniumのバージョン4の場合、途中のバージョンで仕様変更があったためSeleniumのバージョンによってやり方がかわることになります。

 

今回の例ではChromeの場合のコードを載せています。

 

 

目次

 

1.SeleniumのバージョンがVer.4.6より前の場合

 

1)path指定する方法

 
Serviceオブジェクトからexecutable_pathを渡します。
 
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
 
service = ChromeService(executable_path="./drivers/chromedriver.exe")
driver = webdriver.Chrome(service=service)
 

2)webdriver-managerを使う方法

 

webdriver-managerは各ブラウザのバージョンを確認して自動でバージョンアップを実行してくれるライブラリです。

 
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
 
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
 
結果として、たとえばGoogle検索を行うためのコードは以下のようなコードになります。

 

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

#指定したURLに遷移する
driver.get("https://www.google.co.jp")

#Google検索窓を要素取得
element = driver.find_element(By.NAME, "q")

#検索窓に"abc"と入力
element.send_keys("abc")
#Enterキークリック
element.submit()

# タブを閉じる
driver.close()
driver.quit()
 

 

2.SeleniumのバージョンがVer.4.6以降の場合

 

 

Ver.4.6以降では以下のようになります。

 
from selenium import webdriver
 
driver = webdriver.Chrome()
 
 
結果として、こちらでのGoogle検索を行うためのコードは以下のようなコードになります。

 

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

#指定したURLに遷移する
driver.get("https://www.google.co.jp")

#Google検索窓を要素取得
element = driver.find_element(By.NAME, "q")

#検索窓に"abc"と入力
element.send_keys("abc")
#Enterキークリック
element.submit()

# タブを閉じる
driver.close()
driver.quit()
 

 

以上が、PythonとSeleniumを使ってWebスクレイピングする場合のseleniumの仕様変更によるdriver設定の変更内容についてになります。