Archive for 6月, 2016

自動テストなどをやっていると、AngularJS以外からフォームに値を設定して、その値をキチンとngModelを通じて値を反映させたい場合がある。

例えば

<input type="text" ng-model="model.room" />

のように時に、

ele.value = 'hogehoge';

のようにしても、model.roomまでは設定されていない。従って、以下のようにする。

ele.value = 'hogehoge';
var $e = angular.element(ele);
$e.triggerHandler('input');

jQueryがあるならば、以下でも大丈夫。

$(ele).val('hogehoge').trigger('input');

元ネタは、Stackoverflowより

WebRTCでデスクトップ画面共有をできるようにしてみました。こちらから確認できます。
ちなみに、Chromeのエクステンションが必要になり、今のところChrome限定です。
(Chromeエクステンションは、画面共有しようとすると、ダイアログが表示されますので、そこからインストールしてください。)

現在、デモは目的で公開していますが、利用制限等は入れていませんので、ご自由に利用ください。

ChromeでJavaScriptのデバッグをするときにconsole.log()を記述するが、これがDevToolだとめんどくさいので、なんとか、ファイルに書き出せないものかとやってみた。
その方法としては、remote-debug-portというものを使えばできるようです。

まず、Chromeを立上げるときに、「–remote-debugging-port=9222」を引数に指定して立ち上げます。
例えば、Macであれば、

open -a "Google Chrome" --args --remote-debugging-port=9222 $@

とすると、ws://localhost:9222 というようにChromeのデバックツールに接続できるようになります。
ここに接続すると、Consoleのログを取得することができます。
その当たりの詳細は、https://chromedevtools.github.io/debugger-protocol-viewer/1-1/に記述してあるのですが、以下の様なテキストを送信すると、ログが送出されてくるので、そのログをファイルに書き出せばいいというわけです。

{ method : "Console.enable" }

ちなみに、DevToolで見るよりも多くの情報が実はとれているみたいなので、非常にたすかります。

私はJavaでWebSocketで書いてしまいました。
ただ、Chrome側でDevToolを立ち上げると、WebSocket側の接続が切れてしまうようなので、同時に使えない。

これ以外にもコンテンツの取得とかいろいろできるので、ブラウザでのオートメーションをするにも結構使えます。

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2016年6月
« 5月   7月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ