金高真悟の奇天烈(キテレツ)大百科

日々徒然なるままに

株式会社ニコシスの新入社員が毎日のあれやこれやを語ります。

目的の結果について、問題点から考えるのは効果的だな。(*´∀`)ノ

ブラウザの遠隔操作ってどうやる???

こんばんは。
キテレツです。

ブラウザの遠隔操作について調査した一日です。

VBAやActiveScriptなどでCOMオブジェクト化してアレコレ

って方法がネットを賑わせていました。
ものすごい情報量です。((;゚Д゚)

なので、

(´・ω・)ノ 「C#でも同じ方法なのか??」

と思って調べてみたらどうも違うみたいですね。

COM化は調整ポイントが多すぎる

事がわかりました。
調整ポイントとは「処理の待ち時間」です。

キーボードとマウスでブラウザを操作するのと同じ様に、プログラムでブラウザを操作する方法です。
人間ですと、ブラウザの画面が更新されたことを目指してアレコレと操作を開始しますが、プログラムにはそんな事はわかりません。(*´∀`)ノ
ですので、待ち時間を設定して「確実に処理が終了したら・・・・」という考え方で処理を書いていく必要があります。

それがですね・・・・パソコン毎に異なるわけです。
Webページの表示について処理の速いパソコンもあれば遅いパソコンも有ります。
必然的に、処理の遅いパソコンに合わせざるを得ない状況になるんですが、それでは運用がスムーズに行きません。
使ってる人が

(`Д´) ムキー! 「いつまで待たせるねん!!」

ってなっちゃいますね。

しかもですね

IE11からはVBSから操作できません!!!

って仕様になっちゃったらしいです。

SeleniumHQライブラリ

ってのも調査しました。
どうも、このライブラリがブラウザ操作ツールについて近年のトレンドらしいです。(Google先生からの情報も盛りだくさんです)

そもそも、このライブラリはブラウザを操作してWebアプリを繰り返しテストするためのツールなんですね。
確かに、人間がマウス触ってひたすら繰り返しテストすることを考えたら、こんなツールがあったら楽チンです。

それを、ブラウザ操作ツールとして考えて応用してしまおうという魂胆です。

IEChromefirefoxで試した

んですが、、、、

((;゚Д゚) 「IE使い物にならないじゃん!?!?」

という結果に驚きました。
Windows標準ブラウザなのですが、メモリリークしたり処理が遅かったりで結構大変です。
動作が極端に遅くなったりとまだまだ改善の余地はありそうです。
前途多難でどうしようかと思ったのですが・・・

FireFoxChromeは快適ヽ(・∀・)ノワチョーイ♪

でした。
HTMLのDOM解析やDOM操作についても問題なく動作しましたし、動かしていてメモリリークすることも今のところありませんでした。
ひとまず使えそうで安心です。。゚ヽ(゚´Д`)ノ゚。 ヤッターン♪
これならなんとかなりそう。

なんとか本日の目的は達成

しました。
C#からのブラウザ操作について、FireFoxなら目的を達成できそうです。
IEは・・・とっても残念ですが、ドライバの開発がもっと進んだらFireFox並に使えるようになる日が来るかもしれません。

こんな感じの一日でした。(*´∀`)ノ
さぁ、明日は・・・再び、資料作成ツールと格闘です。
込み入ったフォーマットの資料の作り方をアレコレと調査しなければなりません。
※本日、ソフトメーカーからサンプルがやってきました。。。

☆本日の(´・ω・)っよく出来ました~☆

1つ目:SeleniumによるIE操作のOK/NG判断

私のPC含み、合計3台のPCでSeleniumのDriverServerを試してみました。
日本語のドキュメントを探して彷徨うことをせずに、本家本元の1次資料の閲覧にチャレンジした結果、思ったよりも早く判断をつけることが出来ました。
SeleniumHQ本家のドキュメント

2つ目:SeleniumによるFireFoxの操作

こちらも、私のPC含み合計3台のPCで試してみました。
1次資料にあるサンプルコードをそのまま自分の環境で試したので余計なことをせずにすみました。
Google翻訳を使っての英語チャレンジ効果が大きかったかと思います。

3つ目:COM操作によるIE操作のOK/NG判断

最初に、問題点についてGoogle検索を行ったので余計な調査をする時間を短縮出来ました。
(*´∀`)ノ「できたーーー!!」という内容のブログやWebページが多いので、問題点に気がつくまでに時間がかかっていた可能性が高いです。
昔はこの方法でアレコレできていたみたいですが、今はそのように上手くはいかないみたいです。
最初に問題点から調査するやりかたが良いみたいですね。