puppeteer——找到页面元素、输入与点击
- 从API学习
- page.$(selector)
- password_text.type(text)
- login_btn.click()
话不多说,上干货
//从page中找到SELECTOR.PASSWORD_TEXT所指向的密码输入框
const password_text = await page.$(SELECTOR.PASSWORD_TEXT);
//向密码框输入文本TEXT.PASSWORD
await password_text.type(TEXT.PASSWORD);
//从page中找到SELECTOR.LOGIN_BTN所指向的登录按钮
const login_btn = await page.$(SELECTOR.LOGIN_BTN);
//点击登录按钮
await login_btn.click();
从API学习
page.$(selector)
这个方法返回这个元素的元素句柄,在代码中我用一个常量保存这个句柄方便后续操作。
selector——页面元素选择器
这个具体怎么找到呢,以百度为例,演示如下:
1、Ctrl+Shift+C 或 F12后点击图中1处选择器 —— 找到需要的元素(如图2处)点击,找到3处
2、依次——右键→copy→copy selecotr
3、粘贴出来的就是此输入框的selector——#kw
这里需要注意的是,在传入selector时,要加引号(如’#kw’),作为string类型传入
password_text.type(text)
这里的password_text实际上就是输入框的元素句柄,在官方文档中这样写:
elementHandle.type(text[, options])
text就是我们希望自动输入的文本
而这里有一个options参数,里面实际上只用来设置delay延迟输入的,就像:
await elementHandle.type(‘World’, {delay: 100}); // 像人一样输入的慢一点
如果用过自动输入,就会知道电脑给你输入的时候完全是一瞬间,有些网站会因此针对性进行是否为真人操作的检查,这个参数未来遇到这类网站会有大用处。
login_btn.click()
这里的login_btn实际上就是登录按钮的元素句柄,在官方文档中这样写:
elementHandle.click([options])
这里的options我平常不怎么用,但里面的参数也很有意思可以自行前往了解。
记录学习、爬坑经验
0年经验小白,欢迎大佬指点!
希望可以帮到你!