'WebElement' object is not subscriptableとは?Python初心者の勉強

Webスクレイピングの勉強をしていたら以下のエラーに当たった。

'WebElement' object is not subscriptable

not subscriptableとは何が起きているんだろう。

not subscriptableとは

「not subscriptable」を日本語に訳すと、添字不可という意味らしいのですが、オブジェクトの要素にアクセスできない時のことを言っているようです。とはいえ添字ってなんなんだろうと思ったので調べたところ、インデックスの部分のことを添字というようです。

driver.find_element(By.CLASS_NAME, 'class1')[10] # [10]の部分が添字

subscriptableで英語の辞書で調べても出てこないんですね。Python特有の単語っぽいです。

subscriptableにするには

「not subscriptable」でエラーなので「subscriptable」なアクセス可能な状態にするにはどうすればいいのでしょう。

と思いきや凡ミスでした。私の場合はfind_elementの複数形の「s」をつけ忘れていたのが原因でした。

driver.find_elements(By.CLASS_NAME, 'class1')[10]

find_elementsに直したところエラーが回避されました。

オブジェクト構造がどうなっているのか確認してみて正しくアクセスできているか確認するのが早そうですね。

おわり

Pythonはまだまだ見慣れないエラーが多くて、エラーのたびに作業が止まってしまいますね。早く経験豊富になりたいところです。