这是网页上带有 UL 的 Div。
<div id='sites'>
<ul style="display: block;">
<li data-product-id="55">
<a href="#">Test1<br><em class="environment">Production</em></a>
</li>
<li data-product-id="99">
<a href="#">Test2<br><em class="environment">Production</em></a>
</li>
<li data-product-id="98">
<a href="#">Test3<br><em class="environment">Production</em></a>
</li>
<li data-product-id="61">
<a href="#">Test4<br><em class="environment">Production</em></a>
</li>
<li data-product-id="97">
<a href="#">Test5<br><em class="environment">Production</em></a>
</li>
<li class="active">
Test6<br><em class="environment">Production</em> <a class="flat button" href="/product_center">Settings</a>
</li>
</ul>
</div>
该页面默认加载Test6 ul,我想单击Test5。
Firepath 提供的 CSS 定位器是"#sites>ul>li>a"
. 所以我在 casperjs 中尝试了这个:
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
});
casper.start('http://localhost:8080', function() {
this.echo(this.getTitle());
});
casper.then(function(){
casper.page.injectJs('jquery.js');
this.evaluate(function (){
$("#sites>ul>li")[4].click();
});
this.capture('screenshot.png');
});
casper.then(function() {
this.echo(this.getTitle());
});
出现的标题总是当前页面的。它应该点击了 Test5 并获取了 Test5 页面的标题。
我做错了什么?