Home Notices Documents Classes Download Others Rice
Documents  >  tutorial  >  基本の使用法  >  ナビゲート
CookerGXのナビゲート

このセクションの目的

CookerGXは、"Webオートメーション"と"Webスクレイピング"のためのソフトウェアです。ですから、先ずはターゲットとなるWebページを表示しなければなりません。

このセクションでは、CookerGXにWebページを読み込む方法を学んでいきます。

宣言文

サンプルアーカイブ内の"sample_003.cgx"を以下に示します。これはCookerGXをGoogleの検索ページに遷移(Navigate)するためのスクリプトです。

1:

class main

2:

// ブラウザをグーグル検索ページへ遷移する。

3:

open method void start()

4:

browser brw; // 宣言文。browserクラスの変数"br"を作成。

5:

brw.Navigate("https://www.google.com/"); // Navigateメソッドの呼出。

6:

endmethod

7:
8:

open method void end()

9:

endmethod

10:

endclass

前のセクションで触れた、"sample_002.cgx"のstart()メソッドの中に二行加えたものです(コメントは除く)。


ここでは、四行目に注目してください。"browser"というワードに"brw"が続き、セミコロン(;)で終わっています(コメントは除く)。

このような、二つのワードにセミコロンという形式のワード並びをRiceでは宣言文といいます。ただし、並べるワードは何でもいいわけではありません。


最初のワードはクラス名でなければいけません。この場合は、browserクラスを示す"browser"を指定しています。


"クラス?browser?"と思うかもしれませんが、それらの説明は後述します。ここでは、「CookerGXにはbrowserという名前でブラウザを操作する機能群がまとめられていて、その機能群をbrowserというワードで指定した」ぐらいの理解で十分です。


二番目のワードは変数名です。ここでは、適当に"brw"という名前を使っています。


変数名の命名規則や変数そのものについての説明も後述します。ここでは、"brw"が変数名として有効であると理解してもらえば十分です。


最後がセミコロン(;)です。これは、文の終わりを示す記号です。





宣言文とはスクリプトへの名前の導入です。「これから、この名前を使う」とCookerGXに教えるのが宣言文です。

上記の宣言文ならば「この後、"brw"っていう名前が出てくるけど、そいつの中身はbrowserクラスだから」とCookerGXに教えています。

呼出文

次は五行目です。五行目にあるワード並びは、四行目で宣言した"brw"の後にドット(.)が続き"Navigate"、そして("https://www.google...");で終わっています(コメントは除く)。

このようなワード並びを呼出文といいます。呼出文で重要なのはドット(.)です。これは、ドット演算子と呼ばれる演算子で、CookerGXに"メンバ"の呼び出しを指示しています。

新しい用語がいくつか出てきましたが、それらの説明は後述します。ここでは、「何かを呼出している。」で十分です。


四行目の宣言文によってCookerGXは"brw"がbrowserクラスであると知っています。この"brw"に、ドット(.)、"Navigate"と続くことによって、CookerGXは「browserという機能群の中のNavigateを呼び出す」という意図を知ることができます。

Navigateという機能はブラウザの遷移です。遷移には遷移先のURLが必要です。それを("https://www.google.com/")の部分でNavigateに渡しています。最後のセミコロン(;)が文の終わりを示します。





この呼出文が実行されるとCookerGXのブラウザがGoogleの検索ページへ遷移を開始します。

スクリプトの実行

それでは、"sample_003.cgx"を実行してみましょう。どうでしょうか?Googleの検索ページが表示されたと思います。


"sample_003.cgx"は決まったURLへ遷移するだけのスクリプトですが、"https://www.google..."の部分を書き換えれば希望のURLへ自由にジャンプできます。

browserクラスはNavigateような便利な機能を他にも多数持っています。更に、名前の付いた機能群"クラス"がbrowser以外にもたくさん組み込まれています。

これらの組み合わせで、あなたが望む機能を新たに生み出すことができるのです。

クラスとメンバ

これまでに出てきたサンプルスクリプトは全てmainクラスの定義でした。そして、main以外の新しいクラスを自由に定義できることは既に説明しています。

この様なCookerGXの利用者が独自に定義するクラスをユーザ定義クラスと呼びます。


CookerGXは、ユーザ定義クラスではない予め定義されたクラスを持っています。この予め定義されたクラスを、ここでは組み込みクラスと呼びます

組み込みクラスには二つの種類があります。Rice基本クラスとCookerGXビルトインクラスです。

Rice基本クラス : 全てのRiceスクリプトで共通に利用できるクラス。数値、文字列などの基本要素。

CookerGXビルトインクラス : CookerGX上のRiceスクリプトだけで利用できるクラス。ウインドウやブラウザなどのCookerGXの構成要素。


例えば、"数値"を扱わないプログラムは無いでしょう。

例えば、CookerGXには"ブラウザ"が部品として組付けてあります。その"ブラウザ"がユーザ定義クラスから高頻度で操作されることは、容易に予想できます。

このような、多数から利用される部分を予め用意したのが組み込みクラスです。前述のbrowserクラスは、この様な組み込みクラスの一つです。

組み込みクラスの一覧はここから確認できます。


Riceにおいてメンバという用語は、"クラスの構成要素"を意味しています。

メンバの種類を以下に示します。

フィールド(field)

フィッタ(fitter)

セッタ(setter)

ゲッタ(getter)

メソッド(method)

個々のメンバについての詳細はマニュアルを参照してください。

先に出てきたNavigateは、browserクラスのメンバであるNavigateメソッドになります。



変数と名前

Riceにおける"変数"とは「メモリのアドレスを保持している、メモリの特定の部分につけられた名前」です。

正確に説明するとこうなりますが、これでは何のことか分からないと思います。これはチュートリアルに相応しい説明とは言い難いので言い直します。

"変数"とは「名前の付いた容器」です。チュートリアルらしくなりました(笑)。更に、上の宣言文で示したように変数にはクラスが結び付けられるので、「名前の付いた容器。ただし、入る物の種類(クラス)は決まっている」となります。

容器ですから中身の入れ替えができます。しかし、入るもの(クラス)は決まっているので、他のクラスは入れられない。スクリプトを書くだけなら、この認識で十分です





変数の命名規則、というよりはRice全体での命名規則は次の様になります。

使える文字は半角文字。全角文字は使用不可。

最初の一文字はアンダースコアかアルファベット。その後、アンダースコア、アルファベット、または数字が0回以上繰り返すワード。大文字と小文字は区別される。文字数に制限はない。

予約語は名前に使用できない。予約語とは、キーワードと組み込みクラスのクラス名。


命名規則の詳細はマニュアルを参照してください。

ドット演算とメソッド呼出

ドット演算子は、演算子の左側のクラスのメンバを呼出すための演算子です。上記の例は、ドット演算子の左側がbrowserクラスなのでbrowserクラスのメンバを呼び出しますが、演算子の左側は変数に限られるわけではありません。

左側が何らかのクラスだと決定できれば、その決定されたクラスのメンバを呼び出します。





上記の例は、browserクラスのメンバであるNavigateメソッドを呼び出しています。メソッドは呼び出し時に0個以上の値を渡すことが可能なメンバです。この渡す値のことを引数といいます。

引数の数とクラスはメソッド毎に定義されて厳密に決まっています。Navigateメソッドは引数として文字列(URL)を一つ渡すように定義されているので、上記の例でも"https://www.google..."を括弧でくくって引数として渡しているわけです。

引数が無い場合や二つ以上ある場合の表記法についてはマニュアルを参照してください。

文とセミコロン

上記の例に出てきた宣言文や呼出文などのような、意味のあるワードの並びを文といいます。

そして、セミコロン(;)は文の終わりを示す記号です。実際、宣言文も呼出文も最後にセミコロンが必要です。

ただし、文の中には、セミコロンで終わらないものもあります。それらについては、後のチュートリアルで出てきたときに、その都度説明したいと思います。

Next
Previous
Copyright © CookerGX All rights reserved.