为什么不'这是Nightmarejs中修补的异步输入工作
Why doesn't this patched asynchronous input work in Nightmarejs?
我今晚在试验噩梦,我想在运行时有一个需要用户输入的步骤。有没有办法让噩梦允许这样的事情发生?我修改了lib附带的type()方法,并能够停止执行以输入一些文本。脚本甚至完成了,但我看不到我键入的输入,显示在它应该进入的文本框中。我确信dom选择器是正确的,因为当我使用相同的选择器和内置的type()方法时,静态文本就在那里。在下面的代码中,prompt(msg)是来自sync prompt的一个方法。这是我写的方法,但它不会更新页面上的元素:
exports.type_async = function(selector, msg, done) {
this.page.evaluate(function(selector) {
return document.querySelector(selector);
}, function(element){
text = prompt(msg);
element.text = text;
done();
}, selector);
};
我做错了什么?
原始type
在页面上下文中包含行element.value = text;
(在evaluate内部,但不是结果回调),但您有element.text = text;
。
此外,该值可能应该在您提示输入之后设置。
exports.typeAsync = function(selector, done) {
var text = prompt('dynamic, blocking input:');
debug('.type() %s into %s', text, selector);
this.page.evaluate(function(selector, text) {
var element = document.querySelector(selector);
element.value = text;
}, done, selector, text);
};
它被称为:
nightmare.typeAsync('#foo')
相关文章:
- esri javascript异步打印
- JavaScript异步问题
- $translateProvider.useStaticFilesLoader的Angular Translate异步定
- 异步facebook功能
- 异步并行错误
- 在Redux中,我应该在哪里编写复杂的异步流
- 角度异步http自动完成
- 如何从SeleniumWebdriver获取异步Javascript响应
- 如何使用异步调用更改工厂的变量
- 在等待异步任务时永久循环
- 如何在异步函数中使用javascript对象
- 调用后不异步Ajax忽略函数
- learnyounode#9杂耍异步
- 异步获取数据使用JavaScript同步获取数据
- Meteor:异步回调问题
- 如何以异步方式打印q中的项目
- javascript函数中的异步与同步.(Node.js)
- Fresh Spark Install+Homestead上的Vue异步堆栈跟踪错误
- Meteor:异步函数回调异常:onAfterAction
- 为什么不'这是Nightmarejs中修补的异步输入工作