首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >木偶师巴顿出版社

木偶师巴顿出版社
EN

Stack Overflow用户
提问于 2017-09-21 11:35:52
回答 6查看 98.4K关注 0票数 25

根据https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepresskey-options的说法,你可以模拟键盘按键的按压。

我要做的是:

代码语言:javascript
运行
复制
// First, click the search button
await page.click('#outer-container > nav > span.right > span.search-notification-wrapper > span > form > input[type="text"]');
// Focus on the input field
await page.focus('#outer-container > nav > span.right > span.search-notification-wrapper > span > form > input[type="text"]');
// Enter some text into the input field
await page.type("Bla Bla");
// Press Enter to search -> this doesn't work!
await page.press("Enter");

按下按钮不会产生任何结果。基本上都被忽略了。

如何模拟Enter键来提交表单?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-09-26 11:49:36

我终于想出来了。我在同一表单中找到了一个类型为submit的锚元素。然后我点击它,并提交了表格。

下面是我使用过的代码:

代码语言:javascript
运行
复制
const form = await page.$('a#topbar-search');
await form.evaluate( form => form.click() );

您还可以使用$eval方法而不是计算:

代码语言:javascript
运行
复制
await page.$eval( 'a#topbar-search', form => form.click() );
票数 41
EN

Stack Overflow用户

发布于 2018-08-23 03:15:56

也许另一种选择是:

代码语言:javascript
运行
复制
await page.keyboard.press('Enter');

利用它的虚拟键盘API。更多信息这里

票数 9
EN

Stack Overflow用户

发布于 2019-06-14 11:02:01

代码语言:javascript
运行
复制
await page.$eval('input[name=btnK]', el => el.click());

这将单击google中的提交按钮。至于您的页面,找出元素或按钮id,然后使用它。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46342930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档