Perl、Ruby、Python用サンプルスクリプト
(目次)
1.はじめに
ここでは、ScirptBrowserKでActivePerl、ActivePython、Rubyのスクリプトのサンプルと、注意点を解説したいと思います。
今回、動作を確認したスクリプト言語のバージョンは、下の通りです。
筆者は各スクリプト言語について精通しておりませんので、各スクリプト言語の使用方法について間違いや改善点などありましたらご指摘ください。よろしくお願いいたします。
2.スクリプトパネルでのサンプルの実行方法
先ず、ここで紹介するサンプルスクリプトをスクリプトパネル上で実行する手順を解説します。
3.スクリプトファイルに保存してサンプルを実行する方法
ここでは、スクリプトをファイルに保存して実行する手順を解説します。
なお、ScriptBrowserKのスクリプトファイルの拡張子は各スクリプト言語で関連付けられたものを使用します。Windowsに関連付けられていないものは実行されません。
デフォルトの状態でPerlは「.pls」、Pythonは「.pys」、Rubyは「.rb」になると思います。
(注意)ScriptBrowserK Ver3.2.0以前では、Rubyスクリプトファイル(.rb)を実行できません。 Ver3.2.1β3でこの問題に対応しました。
4.サンプルスクリプトの解説
今回紹介するサンプルスクリプトファイルは全て同じ動作を行うものです。各スクリプト言語のScriptBrowserKのオブジェクトの呼び出し方の違いなどが比較しやすいと思います。
サンプルスクリプトはYahoo!のホームページを開いた状態で実行してください。スクリプトの動作は以下の通りになります。
- docwin変数にアクティブなタブのDocumentWindowオブジェクトを代入
- Webページ内の「ファイナンス」の文字列を含むアンカー(リンク)をクリックする
- doc 変数にアクティブなタブのdocumentオブジェクトを代入
- フォームの検索文字列に「松下」を入力
- フォームの検索を実行(submit)する
以上です。
5.Perlのスクリプトの例
use encoding 'shiftjis'; use Win32::OLE qw/CP_UTF8/; Win32::OLE->Option(CP => CP_UTF8); $docwin = &ActiveDocWin; &AnchorOfCaption($docwin->document->body, "ファイナンス", 0)->click; $doc = $docwin->document; $doc->Forms(1)->Elements("s", 0)->{value} = "松下"; $doc->Forms(1)->submit;
(コメント)
Perlは文字のエンコードの設定方法がよく分りませんでした。上の設定で動作を確認しましたが、正しい設定ではない可能性があります。
また、ScriptBrowserKオブジェクトの記述を省略してメソッドを呼び出す場合「&」を先頭につけて(関数として?)呼び出す必要があるようです。
また、最後から2行目のプロパティへの代入の部分で{value}と記述しないと、動作しませんでした。
6.Rubyスクリプトの例
docwin = @ScriptBrowserK.ActiveDocWin @ScriptBrowserK.AnchorOfCaption(docwin.document.body, "ファイナンス", 0).click doc = docwin.document doc.Forms(1).Elements("s", 0).value = "松下" doc.Forms(1).submit
(コメント) ScriptBrowserKオブジェクトの記述は省略できないようです。
7.Pythonスクリプトの例
docwin = ScriptBrowserK.ActiveDocWin; ScriptBrowserK.AnchorOfCaption(docwin.document.body, u"ファイナンス", 0).click(); doc = docwin.document; doc.Forms(1).Elements("s", 0).value = u"松下"; doc.Forms(1).submit();
(コメント) ScriptBrowserKオブジェクトの記述は省略できないようです。
8.(参考)VBScriptの例
set docwin = ActiveDocWin AnchorOfCaption(docwin.document.body, "ファイナンス", 0).click set doc = docwin.document doc.forms(1).elements("s", 0).value = "松下" doc.forms(1).submit
9.(参考)JScriptの例
docwin = ActiveDocWin; AnchorOfCaption(docwin.document.body, "ファイナンス", 0).click(); doc = docwin.document; doc.forms[1].elements["s"].value = "松下"; docwin = ActiveDocWin; doc.forms[1].submit();
以上です。
2007.05.16