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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

解決済

seleniumで存在する要素でno such element: Unable to locate elementが出る

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

1回答

0評価

0クリップ

21599閲覧

投稿2020/04/17 08:26

編集2020/04/17 08:33

Pythonのseleniumにてブラウザ操作をしています。
途中までは上手くいくのですが、あるボタンをクリックしようとしたときに
なぜか下記のエラーが出てしまいます。

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="forward_rblgi01_s01"]"}

該当部分のHTMLソースは下記です↓

HTML

<input type="image" name="forward_rblgi01_s01" src="/docs/0149/0/images/densi_syomeisyo_login_btn.png" onclick="return executeSubmitDomain(this.name);" alt="電子証明書ログイン">

実行しているコードは下記となります。

Python

from selenium import webdriver import chromedriver_binary from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import unittest, time, re class AppDynamicsJob(unittest.TestCase): def setUp(self): # AppDynamics will automatically override this web driver # as documented in https://docs.appdynamics.com/display/PRO44/Write+Your+First+Script self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.base_url = "https://www.google.com/" self.verificationErrors = [] self.accept_next_alert = True def test_app_dynamics_job(self): driver = self.driver driver.get("https://www.shizuokabank.co.jp/corporation/index.html") driver.find_element_by_xpath(u"//img[@alt='ログインはこちら']").click() # ERROR: Caught exception [ERROR: Unsupported command [selectWindow | win_ser_1 | ]] driver.find_element_by_name("forward_rblgi01_s01").click() driver.find_element_by_xpath("//input[@name='']").click() # ERROR: Caught exception [ERROR: Unsupported command [selectWindow | win_ser_2 | ]] driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_xpath("//button[@value='0']").click() driver.find_element_by_id("confirmBtn").click() driver.close() # ERROR: Caught exception [ERROR: Unsupported command [selectWindow | win_ser_1 | ]] driver.find_element_by_id("loginBtn").click() def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException as e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException as e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): # To know more about the difference between verify and assert, # visit https://www.seleniumhq.org/docs/06_test_design_considerations.jsp#validating-results self.assertEqual([], self.verificationErrors) if __name__ == "__main__": unittest.main()

エラー箇所は上記コードの下記の部分です。

driver.find_element_by_name("forward_rblgi01_s01").click()

要素指定方法をxpathに変えても同じエラーが出てしまいます。

どのように変更すればうまくいくのか悩んでいます。

ご知見のおありになります方どうぞよろしくお願いいたします。

環境:Windows10
Python 3.7.3

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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