刚刚开始使用CasperJS,编写了一些示例测试。当使用CSS选择器时,一切都很好,但是我在使用Xpath时遇到了问题。我想使用xpath的唯一原因是创建一个更具弹性的定位器,即
'//a[text()="Office Building"]'与css版本:#content > div > div > div > div:nth-child(1) > a
下面是我尝试过的(注意:我已经在浏览器控制台中测试了这个xpath )
试着直接通过
casper.waitUntilVisible('//a[text()="Office Building"]');尝试将定位器显式指定为Xpath:
casper.waitUntilVisible({
type: 'xpath',
path: '//a[text()="Office Building"]'
});并尝试要求模块selectXPath中的助手如这里所记载的。
var x = require('casper').selectXPath;
casper.waitUntilVisible(x('//a[text()="Office Building"]'))';所有这些都会导致超时错误Wait timeout of 30000ms expired, exiting.,因为元素永远不会“找到”。有什么想法吗?
发布于 2017-01-13 19:17:58
如果只有文本作为标识符来等待和单击casperjs中的链接,而不使用xPath,这可能是一个解决方案。
等待文本,然后使用clickLabel (如果文本是唯一的)更简单:
casper.start('http://yourTestUrl.com');
casper.then(function() {
casper.waitForText('Office Building');
});
casper.then(function() {
casper.clickLabel('Office Building');
});
casper.run();https://stackoverflow.com/questions/41638217
复制相似问题