木偶:如何提交表单?
使用木偶 ,你怎么能以编程方式提交表单? 到目前为止,我已经能够使用page.click('.input[type="submit"]')
如果表单实际上包含提交input。 但是,对于不包含提交input的表单,关注表单文本input元素并使用page.press('Enter')
似乎实际上不会导致表单提交:
const puppeteer = require('puppeteer'); (async() => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://stackoverflow.com/', {waitUntil: 'load'}); console.log(page.url()); // Type our query into the search bar await page.focus('.js-search-field'); await page.type('puppeteer'); // Submit form await page.press('Enter'); // Wait for search results page to load await page.waitForNavigation({waitUntil: 'load'}); console.log('FOUND!', page.url()); // Extract the results from the page const links = await page.evaluate(() => { const anchors = Array.from(document.querySelectorAll('.result-link a')); return anchors.map(anchor => anchor.textContent); }); console.log(links.join('\n')); browser.close(); })();
尝试这个
const form = await page.$('form-selector'); await form.evaluate(form => form.submit());
- 超级expression式必须是null或者一个函数,而不是undefined – reactjs
- 将函数追加到JavaScript Object Literal的__proto__属性是否是一个好主意?