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

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

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

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

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

selenium

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

413閲覧

【Selenium】要素が取得できない (id, class等)

flexibler

総合スコア36

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

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

selenium

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/11/17 04:13

編集2022/11/22 14:56

下記写真のマーカーが引いてある「 <input type="image"... 」 を取得したいです。

イメージ説明

html

1</SCRIPT> 2</head> 3 4<body onload="Form_Focus()" onmousedown="cancelmouseclick();" class="residentPages" id="index" onunload="Window_OnUnload()"> 5 6<form method="post" action="index.asp" name="form1"> 7 8<div id="header"> 9<div id="innerTop"> 10<p id="municipalityName">施設名<font color='#FFFFFF'>(5)</font></p> 11<ul id="residentMenu"> 12 <li><input type='image' src="../image/btn_header_legal_ot.jpg" alt="利用規約" onclick='btn_riyoukiyaku_click();return false;' width="63" height="23" /></li> 13 <li><input type='image' src="../image/btn_header_howto_ot.jpg" alt="利用方法" onclick='btn_riyouhouhou_click();return false;' width="63" height="23" /></li> 14 <li><input type='image' src="../image/btn_header_prepare_ot.jpg" alt="事前準備" onclick='btn_jizenjunbi_click();return false;' width="63" height="23" /></li> 15 <li><input type='image' src="../image/btn_header_faq_ot.jpg" alt="よくある質問" onclick='btn_qa_click();return false;' width="79" height="23" /></li> 16 <li><input type='image' src="../image/btn_header_help_ot.jpg" alt="ヘルプ" onclick='btn_help_click(this.form);return false;' width="52" height="23" /></li> 17 <li><input type='image' src="../image/btn_resident_change-style_ot.jpg" alt="文字色変更" onclick='btn_style_click();return false;' width="63" height="23" /></li> 18</ul> 19</div> 20<div id="innerMiddle"> 21<h1 class="h_img"><img src="../image/logo_header-resident.gif" alt="施設予約サービス" width="264" height="46" ></h1> 22</div> 23<div id="innerBottom"> 24<p id="btnHeaderSp" style="float:left;margin: 2px 0 0 15px;padding: 0 0 0 15px;"><input type='image' src="../image/btn_header_sp_ot.jpg" alt="スマートフォン用画面はこちら" onclick="parent.location ='https://www.pa-reserve.jp/eap-rm/rsv_rm/i/im-0.asp?klcd=119999'" width="211" height="21" /></p> 25<p id="btnGoTop"><input type='image' src="../image/btn_resident_go-top_ot.jpg" alt="トップページへ戻る" onclick="parent.location ='https://www.pa-reserve.jp/eap-rj/rsv_rj/core_i/init.asp?KLCD=119999'" /></p> 26</div> 27</div> 28<div class="sms"> 29 30 31 <div id="wrapper"> 32 33 <div id="contUpperBox"> 34 <div id="contColWrapp"> 35 <div id="contColumnA"> 36 <h2><img src="../image/title_reservation.gif" alt="探す" width="303" height="20" /></h2> 37 <div class="btnBox"> 38 39 <p><input type = "image" src="../image/btn_con_name_ot.jpg" alt="名称" onclick="i11_click();return false;" width="96" height="96" /></p> 40<!-- 上のinputタグを取得したい --> 41 <p>名称から<br /> 42 43 さがす</p> 44 <!-- /btnBox --></div> 45

試したこと(3つ)

Python

1test1 = driver.find_element_by_id("contColumnA")  2#⇧この段階でエラー(NoSuchElementException) 3test2 = test1.find_elements_by_css_selector("div")[1] 4test3 = test2.find_elements_by_css_selector("input")

Python

1test1 = driver.find_element_(By.ID, "contColumnA") 2#⇧この段階でエラー(NoSuchElementException) 3test2 = test1.find_elements_by_css_selector("div")[1] 4test3 = test2.find_elements_by_css_selector("input")

Python

1test1 = driver.find_elements_by_class_name("btnBox")[1] 2#⇧この段階でエラー(IndexError: list index out of range) 3test2 = driver.find_elements_by_css_selector("input")

また、コードの書き方の改善点等ありましたら、教えて頂けると幸いです。

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

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

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

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

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

meg_

2022/11/17 12:42

htmlをテキストで提示いただけませんか?
otn

2022/11/17 13:01

1行目のbodyタグがiframeタグの中にあったりしませんか?
flexibler

2022/11/22 14:59

写真の変更とテキストの追加をしました。 「iframeタグ」は見当たりませんでした。 写真の4行目の「frameタグ」はありますが、これではないですよね。。
guest

回答1

0

ベストアンサー

写真の4行目の「frameタグ」はありますが、これではないですよね。。

なんと!frameタグが。今時は無いと思ってiframeしか書きませんでしたが、frameも同じです。その中は別HTMLですので探索対象外です。

Python

1driver.switch_to.frame(frameタグ要素)

で、探索対象をフレーム内のHTMLに切り替えてから探します。

大元のHTMLに戻るにはdriver.switch_to.default_content()です。特に戻る必要は無いですが。

投稿2022/11/22 16:41

otn

総合スコア84491

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

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

otn

2022/11/24 09:20

開発者ツールで見ていると、知らないとなかなか気づけないですね。 ただ、「この要素は見つからないが、じゃあ、その親であるこの要素は見つかるか?」と順番に親に遡っていくと気づけるはず。 あるいは、この場合は「ソースを表示(Chromeだと Ctrl-U)」で見るとすぐわかります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問