puppeteer 教程(6) ----入門例子(模擬登陸51cto)

目標

模擬登陸51cto

主要學習以下知識點

方法名稱 方法說明
page.$x 此方法解析指定的XPath表達式。
page.waitForNavigation 此方法找到一個匹配 selector 選擇器的元素,如果需要會把此元素滾動到可視,然後通過 page.mouse 點擊它。 如果選擇器沒有匹配任何元素,此方法將會報錯。

詳細api 可參考
https://blog.csdn.net/mengxiangxingdong/article/details/99237204

開始

本文章代碼均在 上傳在
https://gitee.com/hugo110/puppeteer-demo
效果圖
在這裏插入圖片描述

1.代碼

/*

模擬登陸 51  cto
https://home.51cto.com/index
 */


const puppeteer = require('puppeteer'); //引入puppeteer庫
const xpathUtil = require('./util/XpathUtil');
(async () => {
    const browser = await puppeteer.launch({    //啓動瀏覽器
        headless: false,   //代碼運行時打開瀏覽器方便觀察
        // devtools:true   //打開f12界面
    });
    const page = await browser.newPage();  //打開瀏覽器的一個tab 頁
    //networkidle2 - 只有2個網絡連接時觸發(至少500毫秒後)
    await page.goto('https://home.51cto.com/index', {timedout: 10 * 1000, waitUntil: 'networkidle2'});  //訪問51cto 登陸頁面
    //等待 賬號密碼登陸元素出現  並且點擊
    await  page.waitForXPath('//a[contains(string(),"賬號密碼登錄")]', {timedout: 10 * 1000});
    await xpathUtil.$xClick(page, '//a[contains(string(),"賬號密碼登錄")]');
    //等待賬號密碼顯示
    await  page.waitForSelector('#loginform-username', {timedout: 10 * 1000});
    //輸入賬號密碼
    await   page.type('#loginform-username', "你的賬號")
    await   page.type('#loginform-password', "你的密碼")
    //點擊登錄
    await page.click('.loginbtn');
    //等待網頁跳轉  networkidle0  不在有網絡響應
    const response = await  page.waitForNavigation({timedout: 10 * 1000, waitUntil: 'networkidle0'});
    //輸出響應的頁面
    console.log(await response.text())


    // await browser.close();  //關閉瀏覽器
})();

參考博客

https://zhaoqize.github.io/puppeteer-api-zh_CN/#?product=Puppeteer&version=v1.19.0&show=api-pageevalselector-pagefunction-args-1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章