Node.js使用Puppeteer报错TypeError: browser.newpage is not a function如何解决?
问题分析与修复方案
核心错误原因
你遇到的TypeError: browser.newpage is not a function是因为Puppeteer的API方法采用驼峰命名规范,你调用的browser.newpage()是错误写法,正确的方法名是browser.newPage()(注意Page的首字母大写)。
其他需要修复的问题
代码里还有几处类似的命名错误和语法问题,不修复会导致后续执行报错:
page.waitfor(2000)需改为page.waitFor(2000)(waitFor的首字母F大写)- CVV输入的选择器
"input[id='input-one'"缺少闭合引号,正确写法是"input[id='input-one']"
修复后的完整代码
const puppeteer = require('puppeteer'); const rand_url = "URL Redacted for Privacy"; async function initBrowser(){ const browser = await puppeteer.launch({headless:false}); const page = await browser.newPage(); // 修复newpage为newPage await page.goto(rand_url); return page; } async function addToCart(page){ //SELECT TICKET await page.$eval("button[class='btn btn-block button-primary ng-scope']", elem => elem.click()); await page.waitFor(2000); // 修复waitfor为waitFor //BRING UP ADD TO CART await page.$eval("button[class='buyer-type-minicart-button-container primary ng-scope']", elem => elem.click()); await page.waitFor(2000); // 修复waitfor为waitFor //ADD TO CART await page.$eval("button[class='primary block ng-scope']", elem => elem.click()); await page.waitFor(2000); // 修复waitfor为waitFor //CVV await page.type("input[id='input-one']", '630'); // 修复选择器缺少闭合引号 await page.waitFor(2000); // 修复waitfor为waitFor //CONFIRM AGE await page.$eval("button[class='data-protection-checkbox data-protection-opt-in-checkbox ng-pristine ng-untouched ng-valid']", elem => elem.click()); await page.waitFor(2000); // 修复waitfor为waitFor //PLACE ORDER await page.$eval("button[class='btn button-primary ng-binding ng-scope']", elem => elem.click()); await page.waitFor(2000); // 修复waitfor为waitFor } async function checkout(){ const page = await initBrowser(); await addToCart(page); } checkout();
内容的提问来源于stack exchange,提问作者jakeh
相关产品推荐
相关产品推荐

