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

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

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

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

selenium

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

Q&A

0回答

669閲覧

seleniumで要素を取得したいが、エラーが出る

makamaka

総合スコア21

Python

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

selenium

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

0グッド

0クリップ

投稿2021/11/09 15:28

前提・実現したいこと

seleniumでスクレイピングを行っていますが、要素を取得する際にエラーが出てしまい困っています。
要素取得の方法についてご教授ください。

エラーメッセージについて、xpathでコードを書いた際のメッセージを表示していますが、cssで指定した際にも同様のメッセージが出ます。

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

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a/font/b"}

該当のソースコード

python

1driver.find_element_by_xpath('/html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a/font/b').click()

試したこと

cssで要素を指定

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

windows
python

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

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

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

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

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

otn

2021/11/09 16:00

XPathの指定が間違っていると言うことなので、 driver.find_element_by_xpath(~)を実行する直前の状態のブラウザでHTMLを確認しましょう。
makamaka

2021/11/09 16:12 編集

ご回答ありがとうございます。 確認しましたが、やはり変わりないです。 別のタブ等が開かれているため同様の症状が出ることもあるようですが、今回別のタブが開かれているということもありません。 一応再度xpathとcssをのさせていただきます。 xpath:/html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a css:body > table > tbody > tr:nth-child(10) > td > table > tbody > tr > td > table > tbody > tr:nth-child(3) > td:nth-child(1) > a 上記の末尾がaとbで違いますが、その点は関係ないかと思います。 ちなみにa、bともに実行しましたが、どちらもえらーになりました。
otn

2021/11/09 16:24

ちゃんとHTMLを見ていますか?copy XPathしただけじゃ無いでしょうね? iframeの中に入っているとか。
makamaka

2021/11/09 16:33

対象箇所のHTMLを追記させていただきました。 当方プログラミング初心者のため、確認の足りないところがあり申し訳ありません。 対象箇所を再度確認しましたが、私の知識の中では特段問題ないようにかんじました。 可能でしたら、該当箇所のついても下記に記しますのでご確認いただければ幸いです。 HTML: <td align="center" valign="middle" rowspan="2"><a href="/servlet/ITS/stock/IpoNewOrder;jsessionid=a33e223a362a47fcca4a0a453e58b558b642bfc1?encodePrm=8x1s7lp7d8onvie7mlrm9on64&amp;attrSrcKey=a33e223a362a47fcca4a0a453e58b558b642bfc117d0571cbdb2" target="_self" onclick="return linkCheck()"><font color="#211799"><b>申告する</b></font></a></td>
makamaka

2021/11/09 16:54

ちなみにiframeについては driver.switch_to.frame('/html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a/font/a') を実行したところ、 NoSuchFrameException: Message: /html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a/font/a とエラーが出てしまいました。
otn

2021/11/10 09:03 編集

まずは、iframeとは何か学んでください。 driver.page_source の中に、iframeタグが無ければ今回は関係ないです。 > driver.switch_to.frame('/html/body/table/tbody/tr[10]/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]/a/font/a') これは全然駄目です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問