要素を取得できない

2023年1月19日

WinGoferで対象要素を取得できない場合、

  • XPathの指定ミス
  • TYPE指定ミス
  • ダイアログが表示されている
  • フレーム内要素
  • 操作対象のタブが異なる

といったケースが考えられます。

XPathの指定ミス

XPathが変わった
  • 対象サイトのHTMLが変更されて、XPathが変わる場合があります。
  • 対象サイトによっては、動的に属性が切替わることがあります。
    例えば、フォーカスが移った時にテキストボックスの枠色を変えるような場合は、マウスイベントに合わせてclass属性を切り替えたりするサイトがあります。
要素の指定違い
  • 本来と異なる要素を指定している場合、期待する値は得られません。
    下のHTMLコードでは、チェックボックスのON/OFFを取得するには <input>要素を、「チェック1」という文言を取得するには<label>又は<div>要素をXPath指定する必要があります。
<div>
    <input type="checkbox" id="check1"/> <label for="check1">チェック1</label>
</div>

TYPE指定ミス

例えば、TYPE:Elementの【TEXT】は要素のvalue属性、【LABEL】は要素内のテキスト内容(innerText)を取得します。なので、テキストボックス(<input>要素)に、TYPE【LABEL】を指定しても、表示内容を取得することはできません。

ダイアログが表示されている

対象画面でダイアログが表示されている場合、要素を取得することができません。ダイアログを閉じてください。
JavaScriptのダイアログであれば、TYPE【Browser:DIALOG】にて、閉じることができます。

フレーム内要素

フレーム分割されたページや、<iframe>で記述されたフレーム内要素は、対象フレームに移動してから取得する必要があります。 フレーム内要素を操作する

操作対象のタブが異なる

現在のタブと異なるタブや別ウィンドウにある要素を操作するには、ブラウザのタブを切り替る必要があります。 タブの切り替え