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

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

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

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

selenium

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

Q&A

解決済

2回答

7896閲覧

SeleniumのPythonで、取得した要素の子要素を含めて取得するメソッドはありますか?

michir

総合スコア12

Python

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

selenium

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

0グッド

0クリップ

投稿2021/05/13 06:59

編集2021/05/13 09:05

SeleniumのPythonで、取得した要素の子要素を含めて取得するメソッドはありますか?

サイトに掲載されている人名の名簿をSeleniumで作成したいのですが、機種依存文字が画像で表示されているため、textで取得すると、機種依存文字の部分が抜け落ちてしまいます。

これを回避するため、imgタグも含めて取得するメソッドがあるといいなと考えた次第です。

例えば、以下のようなHTMLがあるとします。

<span><img src="/hashigodaka.png">橋 太郎</span>

「hashigodaka.png」は「髙」(はしごだか)を画像にしたものです。

この場合に、

name = driver.find_element(By.XPATH, '//*[@id="wrapper"]/span')
print(name.text)

とすると、「橋 太郎」と出力されてしまいますが、「<img src="/hashigodaka.png">橋 太郎」と出力させたい場合は、どのようにすればよろしいでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

回答本文

name.get_attribute("innerHTML") で取れそうです。

Seleniumのfind_系で作られるWebElementがブラウザのDevTool類で取れるElementと概ね同質で、
コンソールで取れる属性がそのまま取れるっぽいのかなという気がします。

参考

投稿2021/05/13 15:02

attakei

総合スコア2740

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

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

0

こんにちは。

問題文拝見いたしました。

こちらの記事のようにfind_elements_by_xxxを利用して取得するのはいかがでしょうか?

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/05/13 08:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

michir

2021/05/13 08:49

私の説明が悪く大変申し訳ございません。 補足させてください。 例えば、以下のようなHTMLがあるとします。 <span><img src="/hashigodaka.png">橋 太郎</span> 「hashigodaka.png」は「髙」(はしごだか)を画像にしたものです。 この場合に、 name = driver.find_element(By.XPATH, '//*[@id="wrapper"]/span') print(name.text) とすると、「橋 太郎」と出力されてしまいますが、「<img src="/hashigodaka.png">橋 太郎」と出力させたい場合は、どのようにすればよろしいでしょうか?
退会済みユーザー

退会済みユーザー

2021/05/13 09:06 編集

print(name)でどのような要素が取れているのかわからないので、なんとも言えないのですが、 print(name.replace('<span>', '').replace('</span>', '')) として整形すると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問