我一直在使用 mocha-casperjs 一段时间,我注意到由于某些原因,有时代码如下:
casper.click(x("//a[normalize-space(text())='login']"));
或
casper.waitForSelector(x("//a[normalize-space(text())='login']")
不立即工作,但它没有说:
xpath选择器:// a [normalize-space(text())='登录']"仍然不存在5000ms
经过一些尝试,它只是起作用,但不再是它了。
这不是异步问题 ,因为我使用的代码如下:
if(casper.exists(x("//a[normalize-space(text())='login']"))){
console.log('I am here');
}
测试它的存在,这总是返回"我在这里"。
有什么想法吗?
答案 0 :(得分:0)
所以,我认为我遇到的问题与this question.有关 我已经链接到的问题促使我进一步测试和解决方案。我的测试总是失败,这是因为我实际上已经登录了,所以x(“// a [normalize-space(text())='login']”)显然不存在。
下面的代码返回“我在这里”,这是因为我做错了。
if(casper.exists(x("//a[normalize-space(text())='login']"))){
console.log('I am here');
}
我做错了另一件事,它可能对某人有所帮助,而我完全错过了,就是我将casper.start和casper.run移到了describe(“”,function(){...})之外,如:
casper.start();
describe("", function(){
it("...", function(){..})
it("...", function(){..})
});
casper.run(function(){
test.done();
});
我希望这有助于某人。
感谢。