好的 - 以防其他人好奇(我不可能是地球上唯一一个试图弄清楚这些东西的人!)我已经为自己解决了问题 1:通过将值硬编码到列表中,我发现
element('li a')
... 将选择最后列出的项目。
因此,关于使“元素()”选择列表中的特定项目的看似无法解决的问题。
console.log("ROYDEBUG: " + element('li a'));
...将“ROYDEBUG:[object Object]”返回到控制台日志。
但我可以让它识别出有“x”列表项。如果我这样做:
element('li a').query(function (selectedElements, done) {
selectedElements.each(function(idx,elm)
{
var thisOne = selectedElements[idx]; //<-- (same as "= this;").
console.log("ROYDEBUG: " + idx + " - " + thisOne);
//element(thisOne).click(); //<-- doesn't work :(
//element(this).click(); //<-- doesn't work :(
//element(selectedElements[idx]).click(); //<-- doesn't work :(
});
done();
});
然后我在控制台中得到这个:
ROYDEBUG: [object Object]
ROYDEBUG: 0 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG: 1 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG: 2 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG: 3 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG: 4 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG: 5 - http://localhost:9876/app/index.html#/coupon/100
...所以它知道列表中有 6 个项目。但是我不能对这些返回的“元素”使用“element().click()”,因为它们只是每个链接的“href=”部分的文本字符串(如您在上面的控制台输出中所见) .