テスターですが何か?

ホビープログラマ略してHPです

Watin入門(3) – Link, Image –

leave a comment »

Watin入門連載の第3回です。今回はLinkと画像の操作を行います。

想定するWebページ



今回もGoogleのトップページです。「検索オプション」リンクをクリックする操作を行います。

image

Linkクリック


「検索オプション」リンクのHTMLソースは以下のようになっています。

<a href="/advanced_search?hl=ja">検索オプション</a>

このリンクをクリックするプログラムは以下のようになります。テキストボックスやボタンの操作と基本的には同じです。

var Browser = new IE(http://wwww.google.co.jp");

Browser.Link(Find.ByText("検索オプション")).Click();

このプログラムの解説をすると、<a>タグで指定されたリンクテキストを、Find.ByTextで指定してクリック対象のリンクを特定します。ボタンやテキストボックスのケースと同様、クリック対象を一意に絞り込むことができない場合、以下のように記述することができます。

Browser.Links.Filter(Find.ByText("検索オプション"))[0].Click();   // 同一リンクが複数ある場合

Browser.Links[25].Click();

 

また、まどろっこしい書き方も可能です。全リンクをループで検索して、条件に合うリンクをクリックします。

foreach (var link in Browser.Links)
{
    if (link.Text == "検索オプション")
     {
         link.Click();
     }
}

ある条件でリンクが表示されなくなる場合は、Existsプロパティを使用して判断することができます。

var IsExists = Browser.Link(Find.ByText("検索オプション")).Exists;

以上でリンクの説明は終了です。基本は前回のButtonと操作方法はほぼ同じです。

画像クリック


画像クリックは、Yahoo!ニュースの画面左上のロゴをクリックする操作を行います。

image

この画像リンクのHTMLソースは以下のようになっています。

<img name="ygmhlog" width="225" height="40" id="ygmhlog" alt="Yahoo!ニュース" src="http://i.yimg.jp/images/mh/news.gif" border="0" complete="complete"/>

で、この画像をクリックするためのソースはこうなります。

Browser.Image(Find.BySrc("http://i.yimg.jp/images/mh/news.gif")).Click();

ポイントは、Find.BySrcで画像のフルパスを指定することです。相対パスでは、画像のクリックを行うことはできません。もちろん、nameやid属性を指定して以下のように記述することもできます。

Browser.Image(Find.ByName("ygmhlog")).Click();

Browser.Image(Find.ById("ygmhlog")).Click();

対象のオブジェクトを一意に絞り込むことができない場合、オブジェクトの存在を確認する方法は、今までと同様なので割愛します。詳細は添付のサンプルソースを参考にしてください。

今回の内容はここまでです。次回はチェックボックス・ラジオボタンの操作を行います。

今回紹介したソースはSkyDriveにあげておきます、C#VBそれぞれ作成したので興味ある人はダウンロードしてください。

Written by david9142

2011年3月19日 @ 12:35 AM

カテゴリー: Watin

Tagged with , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。