puppeteerで任意のJavaScriptコードを実行する

evaluateメソッドを使うと、任意のJSコードを実行できます。

以下は、Googleのトップページを開いた後にalertを表示する例。

const puppeteer = require("puppeteer");
const main = async () => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto("https://google.com", { waitUntil: "networkidle0" });
  await page.evaluate(() => {
    alert("アラートだよ");
  });
  await page.close();
  await browser.close();
};

main().catch((e) => {
  console.log("何らかのエラー💧");
  console.log(e);
});

 

 

サイトによっては以下のように

  • href属性:javascript:void(0)
  • onclick属性:JSのコード

という感じで書かれている場合があります。

href="javascript:void(0)"をクリックする

 

こういうとき、evaluateメソッドを使ってonclick属性の設定されている値を直接実行するようにしてやれば、わざわざ要素をクリックしなくてもページを遷移できるようになります。

先ほどの例でいうと

await page.evaluate(() => { 
  //ここにonclickの値をコピペする
});

という感じにします。

 

おわり

HTML/CSS/JavaScript
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました