Top > WEBページを自動操作する > テキストボックスを操作する

テキストボックスを操作する

WEBページのテキストボックスに値をセットします。テキストボックスとは以下のようにサイト上で文字を入力する領域(箱)のことです。Yahoo路線情報の「出発」および「到着」を題材に解説します。

テキストボックスの説明

目次
1:テキストボックスのIDを確認する
2:テキストボックスに値をセットする
3:稼働確認
4:エラーへの対処

1:テキストボックスのIDを確認する

対象画面上に複数のテキストボックスがあるかもしれません。例えばYahoo路線情報の場合、画面上に「出発」「到着」など複数のテキストボックスがあります。よって、値をセットする対象のテキストボックスの名前(ID)を調べます。

ブラウザで対象のサイトを開き、F12ボタンを押して下さい。以後、Chromeでの操作方法を説明します。

Yahoo路線情報のテキストボックス

ブラウザ画面の右側に小難しそうな画面が開きます。画面上側の矢印ボタンをクリックした後、対象のテキストボックス(「出発」のテキストボックス)をクリックして下さい。

Yahoo路線情報をF12キーで解析する

画面右側にHTML(プログラムコード)が表示され、一部分がハイライトされます(背景に色が付きます)。ハイライトされた部分から「ID=xxxxx」または「name=xxxxx」という記述を探し出します。「xxxxx」はページや場所によって異なります。この「xxxxx」がテキストボックスを特定する名前(ID)です。

Yahoo路線情報のテキストボックスの情報を解析

Yahoo路線情報の事例の場合、ハイライトされた部分の文字列は以下です。「ID=xxxxx」が存在します。「xxxxx」の部分に該当する「sfrom」がテキストボックスの名前(ID)です。

<input id="sfrom" name="from" type="text" value="" data-rapid_p="5" autocomplete="on">

「ID=xxxxx」がない場合は、「name=xxxxx」を探して下さい。両方存在する場合はどちらか一方を控えて下さい。逆に、両方共に存在しない場合、X Pathを利用します。X Pathを理解するをご参照下さい。

2:テキストボックスに値をセットする

出発のテキストボックス(ID=sform)に文字をセットする方法を解説します。まずWorkFusion Studioを起動し、Yahoo路線情報をブラウザで開くところまで作りこみます。
ブラウザでURLを開く設定は「URLを指定してページを開く」をご参照下さい。

Open websiteでYahoo経路情報を開く

Yahoo路線情報の「出発」テキストボックスにセットする文字(駅名)を用意します。まず、駅名をソフト内に保持するための変数(Variable)を作成します。画面左側の「Recorder Variables」タブをクリックした後、タイプ列の空白部分をクリックして下さい。コンボボックスが開きますので、一番上にある「文字列」を選択して下さい。

駅名設定用のVariable(変数)準備方法

【参考】Typeの種類
Variable(変数)に指定できるTypeの種類と意味は以下の通りです。

文字列(String) 平仮名、カタカナ、英語などの文字列です。全角・半角共に指定できます。
数(Number) 数字限定です。IFステートメントやCASEで条件分岐させる場合に有効です。
ブール(Boolean) True、Falseの2択になります。Numberと同様にIFステートメントやCASEで条件分岐させる場合に有効です。
日付時刻(DateTime) 時間をセットします。
リスト(List) Excelの1行(または1列)を意味します。
テーブル(Table) Excelの範囲(複数行・複数列)を意味します。Tableから1行だけ(1列だけ)抜き出したものがListです。
秘密(Secret) 何でしょうね???

Variable(変数)に名前を付けます。名前列に任意の名前(お好きな名前、何でもいいです)を入力し、「デフォルト値」列にテキストボックスにセットする値を入力して下さい。なお、名前列は半角小文字の英数字と記号のみ入力可能です。
例:名前列に「a」は入力可能です。しかし「A」は入力できません。
備考:事例の場合、Yahoo路線情報の「出発」を意識してName列に「station_start」、Default Value列に「浜松町」と入力しました。

Variableに名前を付けたイメージ

変数とテキストボックスの紐付けを行います。
1:画面左側「ウェブ → ウェブの要素」を選択し、画面中央の「ウェブサイトを開く」の上までドラッグして下さい。
2:ドラッグした「ウェブの要素」をクリックして下さい。画面右側に入力項目が表示されます。
3:入力項目に値を設定します(下記)。

ウェブの要素の追加イメージ

1:モード
テキストボックスに値をセットしますので、「値を設定」を選択します。
2:入力-Variableから値を使用
テキストボックスに入力する文字を格納した変数(variable)を選択します。本事例では「station_start:文字列」を選択します。
3:設定-要素のXPath
画面上のどのテキストボックスに値をセットするのか、ID(名前)をソフトウェアに教えてあげます。既に調査済みの通り、Yahoo路線情報の出発テキストボックスのIDは「sfrom」でした。よって、「//*[@id="sfrom"]」と入力します。すべて半角で入力して下さい。
「//」とか「*」とか、なにやら難しい記号が出てきました。コンピューターの用語で「X path」というのですが、気にしなくでもOKです。大切なのは「id="sfrom"」です。
4:詳細
ページが表示されてからテキストの入力を開始するまでの間の時間を設定します。0だと稀に失敗するため、1000ミリ秒を設定します。

3:稼働確認

入力を完了しましたら、稼働確認します。画面中央上部にある「レコーディングを再生」ボタンを押して下さい。なおボタンを押すと変更情報(レコーディング)が自動的に保存されます。

レコーディングの稼働確認

しばらくすると画面右下に以下のようなウィンドウが表示されます。何もせずにお待ち下さい。起動に少々時間がかかります。

レコーディング稼働中のイメージ

さらにしばらくするとブラウザが自動的に起動し、Yahoo路線情報が表示されます。また出発テキストボックスに「浜松町」がセットされます。ブラウザは自動的に閉じられます。

Yahoo経路情報のテキストボックスに文字を自動入力したイメージ

4:エラーへの対処

設定内容にエラーのある場合、「レコーディングを再生」ボタンを押した後にエラーメッセージが表示されます。OKボタンを押して下さい。
備考:「Details」ボタンを押すと、プログラムエラーの詳細が表示されます。しかし、詳細メッセージは開発者向け(プログラマー向け)のものであり、利用者には何の役にも立ちません。「あぁ、このソフトはJAVAで作られてるんだな…」ってことが分かるくらいです。

起動失敗時のエラーメッセージ

次に一時停止中となっている処理を終了させます。以下の「停止」ボタンをクリックして下さい。

起動失敗時に停止する方法

しばらくすると、WorkFusio Studioの設定画面に戻ります。エラーで止まった箇所(ステップと呼びます)に赤色の×が付いています。×の付いているステップをクリックし、画面右側の設定内容を再確認して下さい。

失敗の原因を調査

テキストボックスへの値のセットの場合、入力項目が極めて少なく、エラーの特定は比較的容易です。以下を確認してみて下さい。

Input
変数の選択が正しいことを確認して下さい。例えば、誤ってTable型の変数やList型の変数を選択していると、エラーになる可能性があります。
Options
すべて半角英数字であること、および名前(ID)が正しいことを確認して下さい。入力したIDが対象のWEBページに存在しない場合、エラーとなります。

エラーを修正しましたら、「レコーディングを再生」ボタンで稼働を確認して下さい。正しく動くまで修正・確認を繰り返します。