当应该从先前设置的变量打开下一页时,不会加载下一页
Next page doesn't load when it should be opened from a previously set variable
我正在从href
属性中解析出一个网址,但是当我这样做时
casper.thenOpen(url, function() {
this.echo(this.getCurrentUrl());
});
显示空白。
我尝试访问的网页上的链接在新选项卡中打开,使用 casper 测试新选项卡比仅导航到同一选项卡上的新链接稍微复杂一些(我认为是这样),这就是为什么我在变量中获取链接然后尝试打开它。
我在这里错过了什么吗?
代码片段:
var href = '';
casper.then(function() {
this.test.assertExists(x('//a[contains(@href, "SUBSTRING OF URL")]'), 'the element exists');
href = casper.getElementAttribute(x('//a[contains(@href, "SUBSTRING OF URL")]'), 'href');
});
casper.thenOpen(href, function() {
this.echo(getCurrentUrl());
});
因此,当我回显href
时,它的值与我要导航到的网址相同。但getCurrentUrl
显示about:blank
.此外,URL 在不到一秒的时间内打开,但当我尝试casper.waitForUrl()
时,它会在 5000 毫秒后超时。
Casper的工作原理是将所有请求推送到堆栈上,然后运行它们。所以在你称之为的时候:
casper.thenOpen(href, function() {
this.echo(getCurrentUrl());
});
href
还没有机会被定义。我相信以下重构是修复它的一种方法:
casper.then(function() {
casper.open(href,function(){
this.echo("Did it work this time?");
});
});
相关文章:
- 在第一页加载时隐藏字段,而不是在php发布之后
- 在新表单上使用JavaScript创建多个共享点项目,但将下一页加载延迟到全部创建
- JS文件未加载第一页加载
- 如何在第一页加载时使jQuery弹出消息
- 当一次加载所有文件时,是否有来自阵列的10个随机闪存文件显示在页面上?(在javascript中)
- 第一页加载时,有角度的ng网格固定标题不是静态的
- 使用Ajax和Jquery一次加载100个块的Wordpress帖子
- 一次加载HTML对象并多次使用
- 链接在第一页加载时瞬间变蓝
- 通过将$resource查询数组添加到AngularJS中另一个数组的底部来进行分页加载
- 为什么 Java 脚本单击事件在第一页加载时没有触发
- 在第一页加载时加载服务
- 一次加载网页,而不是分段加载
- 获取下一页加载的进度
- 保罗爱尔兰无限滚动一次加载 2 页
- 通过导航栏中的单个播放按钮,在电子书中的每一页加载音频文件
- 单页网页应用程序;一次加载所有模板
- Jquery分页,不会一次加载所有数据
- 我如何得到隐藏的值在下一页(同一页)加载
- Jquery mobile: pagebeforechange直到下一页“加载”才会触发