python

 

 

elenium4 にしたら DeprecationWarning

 

selenium3 から selenium4 にしたら DeprecationWarning(非推奨の警告)が出たお話です。

 

非推奨の警告

 

例)

 
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_experimental_option('detach', True)

browser = webdriver.Chrome(options=options)
browser.set_window_size(1028,760)
browser.get('https://www.hoge.com/')

elem_username = browser.find_element_by_xpath('//*[@id="USERNAME"]')
elem_username.send_keys('Beautychan')
elem_submit_btn = browser.find_element_by_name("submit")
elem_submit_btn.click()

 

 

上記コードを selenium4 で実行すると DeprecationWarning が出ます。エラーではないのですがずっと出続けます。しかも警告です。気の弱い私は警告と言われますと恐縮して気になって気になって「やだ、ドキドキとまんな~い♪(BABYMETALより)」状態になるのです。せめて優しく「注意」とかにして欲しいものですよね

 

 

解決方法

 

selenium4 の推奨通りに書くと

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome import service as fs

CHROME_DRIVER = "C:\hoge\chromedriver.exe"

chrome_service = fs.Service(executable_path=CHROME_DRIVER)
options = Options()
options.add_experimental_option('detach', True)
options.add_experimental_option("excludeSwitches", ['enable-automation'])

browser = webdriver.Chrome(service=chrome_service, options=options)
browser.set_window_size(1028,760)
browser.get('https://www.hoge.com/')

elem_username = browser.find_element(By.XPATH, '//*[@id="USERNAME"]')
elem_username.send_keys('Beauychan')
elem_submit_btn = browser.find_element(By.NAME, "submit")
elem_submit_btn.click()

 

 

ドライバのパスを読み込む時は、Serviceオブジェクトの利用を推奨など追加or変更点がかなりあります。

変更点or追加行は上記左の丸数字の行になります。

以上で非推奨警告( DeprecationWarning )が出なくなりました。

 

 

以上。