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文の条件式にそのまま書けるとは……。驚きました。