Python+Selenium+WebDriverでスクレイピングするときに、Element(要素)をクリックしてもダイアログが表示されない場合があり、リトライで対処する方法を説明する。
本来であれば、クリックするElement(要素)の指定が間違ったのか?、それとも別の原因があるのか?を調べるべきとは思うが、今回はリトライして対処した。
動作環境:
Python 3.10.4(これまでは3.8.3を使っていた)
OS:Windows10-Pro [Version 10.0.19044.1889]
ブラウザ:Chrome 105.0.5195.54(Official Build) (64 ビット)
ライブラリ:Selenium 4.3.3(Selenium 3とはパラメータの渡し方が異なる)
サイト:Google Maps(https://maps.google.co.jp/)
(1)GoogleMapsで、左側の「会社情報」をクリックする前の画面である。
(2)GoogleMapsで、上記(1)左側の「会社情報」をクリックすると、下記画面中央に「会社の詳細情報」が表示される。
(3)通常は(2)画面になるが、上記(1)左側の「会社情報」をクリックしても、上記(2)画面中央に「会社の詳細情報」が表示されないことがある。
「会社情報」をクリックしても、「会社の詳細情報」が表示されない場合は、3回リトライするようにして対処した。
今回のソースプログラムである。
この記事を書いてるときに、もしかしたら20行目の前に「element_to_be_clickable」を使ってクリック可能になるのを待てばよいのはないかと思ったので、後日試してみたいと思う。