Python+SeleniumでGoogleのニュースで「ディズニー」を検索する。

次に、<ツール>ボタンを押すと、「ウェブ全体から検索、新着、関連度順」が「ゆっくりと」表示される。

表示された<新着>ボタンを押す。
 

1.<新着>ボタンを押すときに、例外が発生する

elm = driver.find_element_by_xpath(‘//*[@id=”hdtbMenus”]/span[2]’) は正常終了するが、
elm.click() を実行しようとすると、例外が発生する。
———————————————————————————————-

例外が発生しました: ElementClickInterceptedException

Message: element click intercepted:
Element <span jscontroller=”nabPbb” jsaction=”KyPa0e:Y0y4c;BVfjhf:VFzweb”>…</span>
is not clickable at point (362, 87).

———————————————————————————————-

driver.implecity_wait()には、最大10秒間待機する設定にした。

2.Elementがクリック可能になるまで待機したが、例外が発生する。

待機については下記サイトを参考にした。

待機 | Selenium

【Python】Seleniumでの待機処理(暗黙的な待機、明示的な待機) | OFFICE54

Selenium for Python 要素の状態変化のための待機と取得に関して統一的な方法を模索する – Qiita

Seleniumで待機処理するお話 – Qiita

ファイルのダウンロードが完了するまでWebDriverを待機させるには – Qiita

Seleniumを安定稼働させるために行うべき3つの設定(Headlessモードにも対応) | たぬハック (tanuhack.com)

 

3.time.sleep(1)を使うと正常に動作した。

クローリングする場合は、ボタン押下やキー操作したときには、人が操作するのと同じような時間間隔になるようにするためtime.sleep(1)を入れた方が良いので、今回はこの方法で対応することにした。

4.WebDriverWait()でエラーになった推定原因

<ツール>ボタンを押すと、「ウェブ全体から検索、新着、関連度順」が「ゆっくりと」表示される。

Elementもクリック可能にはなっているが、今のやり方でクリックすることができないと思われる。原因はわからない。

Appiumを使ってデスクトップアプリの自動操作で<ツール>ボタンを押下すれば良いのかもしれないが、上記3の対応にした。

ゆっくり表示される動画(wmvファイル)は、こちらからダウンロードできる。 →

AGDRec