LoginSignup
8
7

More than 5 years have passed since last update.

CasperJS Utils + Chrome でhtml要素を選択する方法

Posted at

課題

html要素を一個だけ選択したいのに出来ない場合に、対処したい

やりかた

◆ Chromeを立ち上げ、右側の設定ボタンをクリックしてブックマークツールバーを表示させる
WS000000.png

◆ 下記URLを開き、青色の「CasperJS Utils」ボタンをツールバーへドラッグする
http://docs.casperjs.org/en/latest/modules/clientutils.html#index-2
WS000001.png

◆ html要素を選択したいページへ移動する。
  ※ 以下、例として既に開いておいたGoogle Analyticsページを使用する
WS000002.png

◆ ブックマークツールバーへドラッグした CasperJS Utils をクリックする
  ※ クリックするだけで良い。

◆ 選択したいhtml要素を表示させる。
  ※ 以下、例として下画面のカーソルがかぶさっているチェックボックスを選択させたいものとする
WS000003.png

◆ チェックボックスにカーソルを合わせ、右クリック→「要素を検証」をクリックする

◆ Chrome デベロッパーツールが起動し、選択した要素の部分が青色で表示される
WS000004.png

◆ デベロッパーツール右側の歯車アイコンの左のアイコンをクリックする
WS000005.png

◆ コンソールが表示されるので、下記の文を入力してEnterキーを押下する
__utils__.findAll('input[type="checkbox"][class="ACTION-toggle TARGET-view"]')
WS000006.png

◆ 複数の要素が出てきた(今回は4個)。
WS000007.png

◆ この中から特定の要素を選択する。idタグで選別すればよさそうな感じだが、このidタグはどうやらページが読み込まれるたび動的に数字が変化するらしいので使えない。そこで、要素の特定に使えそうなプロパティを選ぶことにする。
デベロッパーツールの右ウインドウ「Properties」タブをクリックする。
WS000008.png

◆ 一番上の左三角をクリックして展開する
WS000009.png

◆ 展開した部分を探してゆくと、offsetParentの値がどうやらチェックボックスの属しているダイアログであるらしいことが分かる。idも固定のようなので、ここを指定してやれば一意に選択できそうである。
WS000010.png

◆ offsetParentの値を選択するため、先程コンソールに入力した文を以下のように書き換える
__utils__.findAll('div.ID-compareConceptSelector._GAn1 input[type="checkbox"][class="ACTION-toggle TARGET-view"]')

◆ 書き換えた文をコンソールに入力し、Enterキーを押下する
WS000011.png

一意の要素が選択されることを確認する。

試しに下記をコンソールに入力してチェックボックスをチェックしてみる
__utils__.mouseEvent('click', 'div.ID-compareConceptSelector._GAn1 input[type="checkbox"][class="ACTION-toggle TARGET-view"]')

WS000012.png

チェックできた。

CasperJSでクリック遷移させる場合は文法を変える必要もあるが、特定要素の指定をするときに割と簡単にできるので試す価値ありです。

不明点ありましたらコメント欄まで。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7