query: tag:xpath

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