【Python】Selenium:inputタグ(テキストボックス)から文字列を取得・入力する方法

時計 2021.02.28 / 時計

【Python】Selenium:inputタグ(テキストボックス)から文字列を取得・入力する方法

本記事では、PythonのSeleniumによる、inputタグ(テキストボックス)から文字列を取得・入力する方法を解説していきます。

Seleniumはブラウザ操作やスクレイピングで必要不可欠なモジュールです。

Seleniumでフォーム操作する際にinputタグやselectタグから文字列を取得・入力する技術はブラウザ操作をする上で必須の知識です。

selectタグのoption値を選択・取得・解除する方法については以下記事で詳しく解説しています。

本記事を通してinputタグから文字列を取得・入力する方法を確認してください。

本記事を通して以下の知識を学べます。

学べる知識
  • Seleniumについて
  • inputタグ(テキストボックス)から文字列の取得方法
  • inputタグ(テキストボックス)へ文字列の入力方法

Seleniumモジュール

Seleniumとは

SeleniumモジュールはPythonでブラウザ操作をするのに使用されます。
まるで人がブラウザを操作しているかのように、ほとんどのブラウザ操作をPythonで行うことが可能になります。

基本的なリンクのクリックやテキスト入力だけでなく、ログイン情報を入力してログインすることや、Ajaxを使った動的なサイトでもデータをロードするまで待機することも可能です。

SeleniumはWebスクレイピングやブラウザの自動化に多く用いられているモジュールです。

Seleniumの基本的な使い方は以下記事をご参照ください。

inputタグ

inputタグとは

HTMLで使用する様々なタグの一つにinputタグがあります。
inputタグはformタグの中で使用され、テキストボックスやラジオボタン、チェックボックスなどフォーム入力に必要な要素を作成することに使用されます。

<form method="POST"≶
<input type="text" name="text" value="初期値"≶
<input type="password" name="password" value="1234"≶
<input type="file" name="file"≶
<input type="submit" value="送信する"≶
</form≶

Seleniumとinputタグ

Seleniumでスクレイピングやブラウザの自動化をする際に、Webサイトのinputタグの操作が必要になることが多々あります。

ログイン情報を入力するときや、フォーム入力を行うとき、テキストボックスから文字列を取得するときなどinputタグの操作は多岐にわたります。

本記事ではinputタグの以下操作について解説していきます。

  • テキストボックスから文字列を取得
  • テキストボックスに文字列を入力

inputタグのテキストボックスから文字列を取得する

inputタグのテキストボックスに入力されている文字列を取得する方法について解説していきます。

次のようなinputタグを対象とします。

<input type="text" name="text" value="OFFICE54">

このinputタグの文字列(value値)を取得するにはWebElementオブジェクトに用意されているget_attribute()メソッドを使用します。

get_attribute()メソッドの引数にはvalueを指定します。

element.get_attribute('value')

inputタグのテキストボックスに文字列を入力する

inputタグのテキストボックスに文字列を入力する方法について解説していきます。

次のようなinputタグを対象とします。

<input type="text" name="text" value="OFFICE54">

このinputタグのテキストボックスに文字列を入力(セット)するにはWebElementオブジェクトに用意されているsend_keys()メソッドを使用します。

send_keys()メソッドの引数には入力したい文字列を指定します。

element.send_keys(text)

テキストボックス内の文字列消去

注意点として、すでにテキストボックスに文字列が入力されている場合は、send_keys()で送信した文字列は末尾に追加されます。

文字列を上書きしたい場合は、clear()メソッドでテキストボックス内の文字列を消去してからsend_keys()メソッドを使いましょう。

element.clear()

入力前の待機処理

必要ない場合が多いですが、clear()後すぐにsend_keys()を行うと、うまくテキスト入力ができていないことが稀にあります。

そのため場合によってはclear()後は待機処理(time.sleep)をしたのちに、send_keys()メソッドを使用することもあります。

Seleniumのブラウザ操作は人が行うよりも非常に高速なため、このように待機処理を施した方がいい場面もあります。

まとめ

本記事「Selenium:inputタグ(テキストボックス)から文字列を取得・入力する方法」はいかがでしたか。

本サイトOFFICE54ではSeleniumを使用した様々なスクレイピング・ブラウザ操作の方法を紹介しています。

ぜひ他の記事も参考にしてください。