memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

メモ:toio Visual Programmingでtoio座標のエレメントへのパスを取得する

まえふり

Sonyさんが提供してくれているtoio用のScatch実行環境があります。以下です。

toio.github.io

これでアプリを作っているのですが、このScratchが認識しているtoioの座標を外部アプリに飛ばして連携したいことがありまして、@youtoyさんの記事を参考にさせてもらったんです。これが2年くらい前の話です。

Scratch 3.0(公式)などで独自拡張機能を使わない外部との通信【ソースコード編】(ブラウザの開発者ツールのコンソール、JavaScript、WebSocket が関連) #Node.js - Qiita

具体的にはScratch内で認識したtoioのx,y座標をScratch画面に表示させて、そのタグ情報を取得して外部に渡す感じになります。詳しくは上記の記事を参照してください。

で、Scaratchの画面からタグへのパスをどうやって取ったかな。。。とちょっと考えてしまったので、せっかくなのでやるついでにメモしておいうというエントリーになります。スクレイピングではおなじみの方法だと思いますがすぐに忘れてしまうので。。。

方法

環境はChromeです。Scratchの画面を開いてx,y座標の情報を置き(赤矢印のところ)、あとは、開発者モードにして、①を選択し、あとはHTML内をクリックしながら x,y座標の情報(だけ)がハイライトされるまで もぐっていきます。

②までいきついたら、あとはそこで右クリックするとメニューが表示されるので③、④と選択します。すると、このタグまでのセレクタ情報がクリップボードに入りますので、あとは好きなところにペーストすればOKです。

ちなみに、この場合は、以下のような情報が取得できました。

body > div.index_app_3Qs6X > div > div.gui_body-wrapper_-N0sA.box_box_2jjDp > div > div.gui_stage-and-target-wrapper_69KBf.box_box_2jjDp > div.stage-wrapper_stage-wrapper_2bejr.box_box_2jjDp > div.stage-wrapper_stage-canvas-wrapper_3ewmd.box_box_2jjDp > div > div.stage_stage_1fD7k.box_box_2jjDp > div.stage_monitor-wrapper_2w6m8.box_box_2jjDp > div > div > div:nth-child(1) > div > div > div > div.monitor_value_3Yexa

これを実際に使うときには以下のように書いて、あとは、これを定期実行するようにsetIntervalする感じになります。

const x = document.querySelector("上記のパス情報");

以上、メモでした。