gpt4 book ai didi

javascript - 为什么这个修补后的异步输入在 Nightmarejs 中不起作用?

转载 作者:行者123 更新时间:2023-12-03 11:35:15 25 4
gpt4 key购买 nike

今晚我正在尝试 Nightmarejs,我想在运行时有一个需要用户输入的步骤。有没有办法让 nightjs 允许这样的事情?我修改了库附带的 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; (在评估内部,但不是结果回调),但是您有 element.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')

关于javascript - 为什么这个修补后的异步输入在 Nightmarejs 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com