mocha-casperjs:有时click / waitForXXX不会立即使用xpath工作。

时间:2016-09-19 10:59:19

标签: mocha casperjs

我一直在使用 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');
}

测试它的存在,这总是返回"我在这里"。

有什么想法吗?

1 个答案:

答案 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();
});

我希望这有助于某人。

感谢。