質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

2回答

4526閲覧

seleniumのNoSuchElementExceptionを解決したい。

m230546b

総合スコア3

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/07/11 16:05

前提・実現したいこと

書籍をもとに簡単な会員制Webアプリを作成しております。
エラーが解決できずご質問致します。
seleniumを使ってテストしていたところ、下記のようなエラーがでてしまいました。

発生している問題・エラーメッセージ

ERROR: test_login (accounts.tests.TestLogin) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="login"]"}
【該当箇所】 from django.test import LiveServerTestCase from django.urls import reverse_lazy from selenium.webdriver.chrome.webdriver import WebDriver class TestLogin(LiveServerTestCase): @classmethod def setUpClass(cls): super().setUpClass() cls.selenium = WebDriver(executable_path=r'C:\Users\m2305\Desktop\chromedriver.exe') @classmethod def tearDownClass(cls): cls.selenium.quit() super().tearDownClass() def test_login(self): # ログインページを開く self.selenium.get('http://localhost:8000' + str(reverse_lazy('account_login'))) # ログイン username_input = self.selenium.find_element_by_name("login") username_input.send_keys('postgres') password_input = self.selenium.find_element_by_name("password") password_input.send_keys('1992big0812') self.selenium.find_element_by_class_name('btn').click() # ページタイトルの検証 self.assertEquals('日記一覧 | Private Diary', self.selenium.title)

試したこと

エラーメッセージから、loginという要素が抜けているためにエラーがでていると思ったのですが、エラー箇所の

username_input = self.selenium.find_element_by_name("login")

login自体は抜けておらず、他の修正箇所もわからず困っております。
ご教授いただければ幸いです。よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

Window10
Chrome
python3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/07/11 22:52

seleniumで操作しているWebページのHTMLソースも提示ください。
guest

回答2

0

◆ python manage.py runserver
を実施後、testを行えば良いかと思います。

下記にrunserverを稼働していない場合の実行結果を記載します。

ERROR: test_login (accounts.tests.TestLogin)

Traceback (most recent call last):
File "C:\Users\User\venv_private_diary\private_diary\accounts\tests.py", line 22, in test_login
username_input = self.selenium.find_element_by_name("login")
File "C:\Users\User\venv_private_diary\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Users\User\venv_private_diary\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\User\venv_private_diary\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\User\venv_private_diary\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="login"]"}
(Session info: chrome=84.0.4147.89)

投稿2020/07/22 07:45

jouji-szk1

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

login自体は抜けておらず、

そうは言っても、エラーメッセージからは、loginというname属性の付いたタグは無いということが分かりますので、HTMLをよく見直して正しく指定しましょう。

あるいは、loginというname属性の付いたタグがフレームの中にあるのであれば、このコードは駄目なのでコメントください。

投稿2020/07/12 02:50

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問