[英]zombie browser won't open a window after calling open function
tools 工具
attempt 1 尝试1
attempt 2 尝试2
commands: 命令:
const Browser = require('zombie');
var url = 'https://google.com'
var browser = new Browser();
browser.open(url=url)
browser.open('http://google.com', function(err) { browser.assert.success();
});
browser.assert.text('title', 'Google');
Results on both machines minus filepath differences: 两台机器上的结果减去文件路径差异:
assert.js:93
throw new assert.AssertionError({
^
AssertionError: No open window with an HTML document
at Browser.queryAll (/home/dmmmd/Dropbox/node_js_projects/node_modules/zombie/lib/index.js:432:5)
at Assert.text (/home/dmmmd/Dropbox/node_js_projects/node_modules/zombie/lib/assert.js:307:33)
at Object.<anonymous> (/home/dmmmd/Dropbox/node_js_projects/affinity-zombie/sample_zombie.js:7:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:935:3
What am I missing after reading the docs at zombie browser ? 在zombie浏览器上阅读文档后,我错过了什么? Thanks in advance.
提前致谢。
I tried some other urls, too, even localhost ones without any success. 我尝试了其他一些网址,甚至是localhost也没有成功。
JavaScript, node.js, io.js, and zombie are all new to me so I am basically just following recipes from the documentation and stackoverflow questions. JavaScript,node.js,io.js和zombie对我来说都是新手,所以我基本上只是遵循文档和stackoverflow问题的方法。 I would appreciate any suggestions.
我将不胜感激任何建议。 I suspect I am missing something very simple.
我怀疑我错过了一些非常简单的事情。
This question has been unanswered for a while but I've been working around a similar error message recently. 这个问题暂时没有答案,但我最近一直在处理类似的错误消息。
TL;DR - User browser.visit instead of browser.open() and pass in a callback function to ensure browser's state is populated correctly. TL; DR - 用户browser.visit而不是browser.open()并传入回调函数以确保正确填充浏览器的状态。
You can do this in a number of ways: 您可以通过多种方式执行此操作:
const Browser = require('zombie');
var url = 'https://stackoverflow.com'
Browser.visit(url, function(error, browser) {
browser.assert.text('title', 'Stack Overflow');
});
const Browser = require('zombie');
var url = 'https://stackoverflow.com'
var browser = new Browser();
browser.visit(url, function() {
browser.assert.text('title', 'Stack Overflow');
});
const Browser = require('zombie');
var url = 'https://stackoverflow.com'
var browser = new Browser();
browser.visit(url).then(function() {
browser.assert.text('title', 'Stack Overflow');
});
const Browser = require('zombie');
var url = 'https://stackoverflow.com'
var browser = new Browser();
browser.visit(url, function(){}); // NB: no-op callback!
browser.assert.text('title', 'Stack Overflow');
The browser.open() method opens a new browser tab and takes a JavaScript Object containing an url property, so your original code had a syntax error, the line browser.open()方法打开一个新的浏览器选项卡,并获取一个包含url属性的JavaScript对象,因此原始代码有一个语法错误,该行
browser.open(url=url)
should read 应该读
browser.open({url: url})
but it's not clear whether the open method actually makes the new tab visit the url - at least not from a cursory read over the source. 但目前尚不清楚open方法是否实际上使新标签访问了网址 - 至少不是粗略阅读来源。 Use browser.visit() to be on the safe side.
使用browser.visit()是安全的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.