#今まで問題なく動いていたスクレイピングの処理がエラーになったので備忘録
スクレイピングプログラムが今まで問題なく動いていたのに、ある日突然send_keysでエラーになったので情報共有します。
エラーになったソースとメッセージはこれ。
hoge.py
email = test_test@hoge.com
driver.find_element(By.ID, "ID").send_keys(email)
mesasge
selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot construct KeyEvent from non-typeable key
(Session info: headless chrome=98.0.4758.80)
原因をしらべてみると、chromedriverの問題らしい。
chromedirverバージョン98には、send_keysでアンダースコア(_)を使っているとエラーになるバグが存在するようです。
↓詳細はこのサイトを見てください
バージョンを戻して対応する方法もあるようだけど、私はchromeのバージョンアップを行なっているのでプログラム実行時にchromedriver_autoinstallerを使ってchromedriverも最新を使用しています。
そのため、send_keysの代わりにexecute_scriptの命令を使用してエラー回避
hoge.py
email = test_test@hoge.com
driver.execute_script('document.getElementById( "ID").value="%s";' % email)
これで問題なく動くようになりました。
execute_scriptにすることによる問題点とか理解していないので、
詳しい方、コメント欄で教えてください。