[英]Waiting for a page to load in CasperJS
在测试中,我需要等待页面加载后才能继续。 由于某些原因, waitForSelector
和waitForText
无法正常工作,尽管我只能使用wait(value)
,但我不得不考虑服务器可能变慢的时间,并使该值比我想要的大得多。 所以我想做一个while循环,告诉系统每次返回“ someCSSpath”在页面上不存在时要等待500毫秒。 有什么方法可以做到这一点(也许是“ casper.DoesntExist”吗?),或者有更好的方法吗?
var css3path = "body > div.container-fluid > div:nth-child(3) > div.row.ng-scope > div:nth-child(1) > a > div";
casper.waitForSelector(css3path , function(){
this.test.assertExists(css3path );
if (casper.exists(css3path ){
this.echo("logged in!");}
else{
this.echo("not logged in");
};
});
当我使用casper.wait(6000, function(){
而不是waitForSelector
,它工作正常。
之前我使用相同格式的waitforselector,它也可以工作; 我认为这是我正在寻找的特定事物,这给我带来麻烦。
另外,当我使用wait(6000,
测试发现CSS3路径很好;只是waitForSelector
找不到它。
知道为什么waitForSelector
和waitForText
完全waitForSelector
将很有帮助。 他们超时了吗? 他们找不到所需的选择器或文本吗?
如果他们超时,我建议更改Casper将等待的默认时间,直到它发送超时消息为止。 您casper.options
在开始测试之前使用casper.options
更改此casper.options
,如下所示:
//Set time-out to 20000 milliseconds (20 seconds)
casper.options.waitTimeout = 20000;
casper.test.begin('Begin tests', function suite(test)
{
//Your tests go here
}
重要的是要有一个超时而不是一个肯定会循环的while循环。 如果服务器出了问题,则测试将超时,并且您会知道出了问题。
请查看此问题以获取有关Java的更多信息,而while循环等待标志:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.