mocha-casperjs:有时 click/waitForXXX 不能立即使用 xpath。
mocha-casperjs: sometimes click/waitForXXX don't work immediately with xpath.
我已经使用 mocha-casperjs 一段时间了,我注意到出于某种原因,有时代码如下:
casper.click(x("//a[normalize-space(text())='login']"));
或
casper.waitForSelector(x("//a[normalize-space(text())='login']")
没有立即工作,但它没有说:
xpath 选择器://[normalize-space(text())='login']" 仍然不存在 5000ms
经过一些尝试,它刚刚好用,但后来又不行了。
不是异步问题,因为我用的代码是这样的:
if(casper.exists(x("//a[normalize-space(text())='login']"))){
console.log('I am here');
}
测试它的存在,这总是 returns "I am here"。
有什么想法吗?
所以,我认为我遇到的问题与 this question. 有关
我链接到的问题使我进行了进一步的测试并找到了解决方案。我的测试一直失败,那是因为我实际上已经登录了,所以 x("//a[normalize-space(text())='login']") 不是显然有。
下面的代码返回了"I am here",这是因为我做错了。
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();
});
我希望这对某人有所帮助。
谢谢。
我已经使用 mocha-casperjs 一段时间了,我注意到出于某种原因,有时代码如下:
casper.click(x("//a[normalize-space(text())='login']"));
或
casper.waitForSelector(x("//a[normalize-space(text())='login']")
没有立即工作,但它没有说: xpath 选择器://[normalize-space(text())='login']" 仍然不存在 5000ms
经过一些尝试,它刚刚好用,但后来又不行了。
不是异步问题,因为我用的代码是这样的:
if(casper.exists(x("//a[normalize-space(text())='login']"))){
console.log('I am here');
}
测试它的存在,这总是 returns "I am here"。
有什么想法吗?
所以,我认为我遇到的问题与 this question. 有关 我链接到的问题使我进行了进一步的测试并找到了解决方案。我的测试一直失败,那是因为我实际上已经登录了,所以 x("//a[normalize-space(text())='login']") 不是显然有。
下面的代码返回了"I am here",这是因为我做错了。
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();
});
我希望这对某人有所帮助。
谢谢。