Python

Python+SeleniumでHTML要素の有無を判定するには?

Python+SeleniumでHTML要素の有無を判定するには?
Pythonでブラウザの要素を取得、操作する方法を試していたら、HTML要素が見つからなかった時の処理をしたくなりました。
ところが、find_element_by_〇〇()で存在しないHTML要素を取得しようとすると、エラーになって処理が止まってしまいます。
「JavaScript」であれば「undefined」を使えばif文で判定できますが、どうやらPythonにはなさそう。
Pythonでもif文で判定する方法を調べましたので、シェアします。

 

どうやってHTML要素の有無を判定するの?

find_elements_by_〇〇()と複数形を使います。
複数形を使えば戻り値はリスト形式なので、HTML要素がなくても空のリストが返ってエラーになりません。
便利なのが、len()を使わずif文の条件式にそのまま書けます。

if driver.find_elements_by_class_name('〇〇'):
    print('有る')
else:
    print('無い')

 

まとめ

PythonでHTML要素の有無を調べる時には「find_elements_by_〇〇()」と複数形を使います。
それにしても、if文の条件式にそのまま書けるとは……。驚きました。

-Python
-, , , , , , , , , ,