NameError: name ‘By’ is not defined

Python
本ページはプロモーションが含まれています

はじめに

python+robotframeworkのseleniumでRPA(自動化)しようとコードを書いている時にエラーが出ました。
今回はその時のエラーの原因&対処方法をメモとして残すことにします。

エラー

エラーメッセージは次のようなものでした。

NameError: name 'By' is not defined
エラーの内容を訳すと
「名前のエラー:名称「By」は定義されていません
と言っています。

原因&対処

原因ですが、いくつか考えられます。
よくあるのが、

  • スペルミス
  • インポートのし忘れ

です。
今回は、Seleniumでクラス名などを定義している「By」のライブラリのインポートが出来ていませんでした。

そのため、
from selenium.webdriver.common.by import By
を追加することでエラーが消えました。

さいごに

今回はライブラリのインポート忘れで発生したエラーでした。
ネットで調べてソースを参考にさせてもらったものがソースが省略されていたり、ライブラリをコメントアウトしたりでインポート出来ていないということが割とあります。

他にはスペルミスもよくありがちなので、「is not defined(定義されていません)」と表示された場合まずはライブラリがきちんとインポートされているのか確認するのがいいかと思います。

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

タイトルとURLをコピーしました