javascript - Node.js: puppeteer focus() 函数
问题描述
我正在尝试使用 puppeteer 登录该站点,然后在登录后使用其他一些东西。与站点的连接成功,但是函数 focus() 有问题。它需要一个选择器作为参数,但是在插入一个之后,它显示一个错误(选择器很好,因为我在站点的控制台中运行了 document.querySelector("input.login-field") 并返回了这个:)
<input class="login-field" type="text" inputmode="email" autocapitalize="none" name="m" placeholder="Email or username" value="">
。有什么问题?
这是我的代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false, slowMo: 25});
const page = await browser.newPage();
await page.goto("site");
await page.focus("input.login-field");
await page.keyboard.type("information");
await browser.close();
})();
解决方案
如果您确定选择器是好的并且它在控制台中以 headful 模式工作,请尝试等到页面脚本被下载、启动并且所需的元素出现在 DOM 中:
await page.goto("site");
await page.waitForSelector('input.login-field'); // <-- wait until it exists
await page.focus("input.login-field");
推荐阅读
- node.js - 我在节点 js 的单个函数中处理多个 socket-io 实例事件时遇到问题
- javascript - 如何在按钮单击时在 EXTJS 中添加字段集
- ios - RSA 加密仅在运行 iOS 9 的 iPhone 4s 上失败
- java - 获取接口“FloatingPoint”的名称,而不是扩展的类名“DataTypeA”
- javascript - 什么是 PHP trait 的 nodejs 等价物
- objective-c - Objective-c中需要为JNI导入子框架头文件
- pkcs#11 - PKCS#11 C_CreateObject 因参数错误而失败
- android - 什么都不调整时如何获得键盘高度?
- google-chrome - 未打开的网页和 Chrome 扩展程序之间的消息传递
- angular - 如何在 Angular 5 server.ts 中获取 --env 变量的值?