我尝试了多个示例来进行分割登录,但无法使其正常运行。 虽然,我对puppeteer还是很陌生,但登录后感觉到了一个了解puppeteer的简单用例。
const puppeteer = require('puppeteer')
const screenshot = 'login.png';
(async () => {
const browser = await puppeteer.launch({headless: false})
const page = await browser.newPage()
await page.goto("https://www.splitwise.com/login", {
waitUntil: 'networkidle2'
});
await page.type('#user_session_email', 'atest')
await page.type('#user_session_password', 'test')
await page.click('[name="commit"]')
await page.waitForNavigation()
browser.close()
console.log('See screenshot: ' + screenshot)
})()
答案 0 :(得分:1)
不幸的是,页面有两种形式的ID相同(但类不同),并且这些形式的输入也具有相同的ID。您只需要更具体的选择器即可:
await page.type('form.form-stacked #user_session_email', 'atest')
await page.type('form.form-stacked #user_session_password', 'test')
await page.click('form.form-stacked [name="commit"]')
答案 1 :(得分:0)
这似乎不是木偶戏。
页面中的javascript代码似乎正在以某种方式主动阻止触发的事件。
您是否可以在控制台中使用常规javascript设置这些值?