我正在运行page.evaluate()
,它必须返回我在页面的输入字段中手动键入的内容。我写了一段我知道不会起作用的代码,但它表明了它的意图:
let inputText = await page.evaluate(() => {
// some non-automated process done by hand
let sendButton = document.querySelector(".button");
sendButton.addEventListener("click", () => {
let text = document.querySelector(".input").value;
return text;
}, false);
// wait for text?
});
console.log(inputText);
如何使伪造者在page.evaluate()
内部等待事件触发,然后将输入的文本返回到nodejs上下文?
答案 0 :(得分:1)
您不能让ID_A P1 P2 P3 P4 ID_B Text
1 7 5 6 6 7 G
1 7 5 6 6 5 E
1 7 5 6 6 6 F
1 7 5 6 6 6 F
等待,但是可以使用exposeFunction注册回调函数。
evaluate
正如miyagisan所说,这是一个好主意,也可以返回承诺:
await page.exposeFunction('processInput', inputText => console.log(inputText));
await page.evaluate(() => {
// some non-automated process done by hand
let sendButton = document.querySelector(".button");
sendButton.addEventListener("click", () => {
let text = document.querySelector(".input").value;
processInput(text);
}, false);
});