以下页面代码包含一个链接列表,这些链接没有用于点击它的ID和名称:
我的casperjs代码存在问题,因为它需要id或名称:
...
casper.then(function() {
test.assertTextExists("User Data", "Login ok");
test.clickLabel('Link_for_Data_1','a');
});
...
同样通过使用带有href的xpath似乎不起作用:
this.click(x('//*[@href="#cookpot-home/data-cookpot"]/a[text()="Link_for_Data_1"]'));
更多页面代码,也许有帮助(下图中的深蓝色是带链接的部分,见第一张图片):
经过一番调查后,我意识到登录此页面后可能需要更多时间来加载下一页。 我添加了一个等待计时器10秒,但它仍然没有帮助!
...
casper.then(function() {
casper.wait(10000, function() {
this.echo('should appear after 10s');
});
});
casper.then(function() {
console.log(this.getCurrentUrl());
casper.waitForText('Link_for_Data_1', function() {
this.echo('FOUND');
});
test.assertTextExists("Data page", "Login into Data");
...
上述代码似乎有效,直到waitForText
从未打印'FOUND'
。
此外assertTextExists
失败,但根据getCurrentUrl
,它位于正确的页面中(页面显示文本“数据页面”)!
所以以上所有似乎都是正确的方法,但它仍然没有回答我的主要问题。