• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

S-IDE では操作対象の要素を xpath で指定することができる。

|caption=例:xpathの明示
|
|コマンド,対象,値
|
|click,xpath=//h2/a,

対象要素を特定するこの機能は Element Locator と呼ばれ、
Selenium Core で提供されている。

javascript>>
BrowserBot.prototype.findElement = function(locator, win) {
var element = this.findElementOrNull(locator, win);
if (element == null) throw new SeleniumError("Element " + locator + " not found");
return element;
}
<<--
(selenium-core-1.0.1/core/scripts/selenium-browserbot.js)

従って、S-IDE の対象指定以外での場所、
例えば自作関数内や getEval の中などで使いたい場合には、
上記の findElement を直接呼び出すとよい。

|HP,2703/2842
|MP,1413/1413

javascript>>
function isHpFull(percent) {
var path = '//tr[0]/td[1]';
var hp = selenium.browserbot.findElement(path).split('/');
var hp1 = parseInt(hp[0]);
var hp2 = parseInt(hp[1]);
return ((hp1 * 100 / hp2) > percent);
}
<<--

|caption=例:HPが90%以上ある場合は宿屋に入らない
|
|コマンド,対象,値
|
|gotoIf,isHpFull(90),skip_inn
|click,label=宿屋,
|label,skip_inn,

関連として、Selenium 環境ではない状態の Mozilla で xpath を扱うには、
document.evaluate が便利である。

ruby>>
function xpath2text(path) {
var result = document.evaluate(path, doc, null, 7, null);
var item = result.snapshotItem(0);
return item.innerHTML;
}
<<--

参考

posted by maiha maiha on Fri 25 Sep 2009 at 21:51 with 0 comments
Contents rssrss
Ubuntu 10.04 (lucid) でSunJDKを使う方法
Hashname: 大量のファイルをScalaで楽に扱う方法
公開した gem を削除する方法
thor で usage の自動生成
[NoSQL] ohm-arfreaks (redis用のAR風ORM) の使い方
rubygems-1.3.6 を入れてしまうと rails-2.2.2 が全滅する件
[NoSQL] activetokyocabinet (TokyoTyrantのORM) の使い方
[NoSQL] MiyazakiResistance (TokyoTyrantのORM) の使い方
[NoSQL] rufus-tokyo (TokyoCabinetのORM) の使い方
[NoSQL] Ohm (redis用のORM) の使い方
Tags
seleniumxpath
Comments rssrss
maiha maiha: 追記)対応は約1営業日でした。チームの忙しさに応じて変動するとは思いますが、大体の目安情報ということ... 04/19 07:39
maiha maiha: なるほど。rails のログから実行したクエリを抜き出したいと思うことがよくありまして。 あ、削除... 03/08 04:15
winebarrel winebarrel: レポートありがとうございます。 削除できない件は修正しました。 SQLのparserはTC/TTに... 02/27 04:40
maiha maiha: なるほど。ありがとうございます! 02/08 18:19
ursm ursm: Haml 2.2 以降はどこでも式展開が使えるようになったので、== は意味がなくなりました。! だ... 02/08 10:23
walf443 walf443: それgit remote -vでできるよ 01/18 02:10
maiha maiha: reset だと範囲が tree 全体になるよね?例えば 「lib/* 以下は正しく修正できていて ... 08/29 21:32
Leonard Chin (レオ) Leonard Chin (レオ): git reset --hard でいいんじゃない? 08/28 12:32