web-dev-qa-db-ja.com

スクリーンショットを作成する前に、puppeteerを使用してDOMの要素を変更することはできますか?

私は新しい操り人形師ですが、javascriptとNode.jsにはかなり慣れていますが、スクリーンショットをキャプチャする非常に単純なNodeプロセスを用意しています。innerTextを変更することは可能ですか?スクリーンキャプチャが取得される直前に、puppeteerを使用するHTML要素は?

私は人形を使用して認証フィールドにテキストを入力し、サイトにログインすることに成功しましたが、特定の要素のテキストを変更できる類似の方法があるかどうか疑問に思っていました(IDまたはクラス名を使用)

私が使用しているスクリーンキャプチャコードの例:

const puppeteer = require('puppeteer');
 (async () => {
    const browser = await puppeteer.launch()
    const page = await browser.newPage()
    await page.goto('https://google.com')
    await page.screenshot({path: 'google.png'})
    await browser.close()
 })()

したがって、この例では、IDが 'lga'のdivなどの要素のテキストコンテンツを変更できるかどうかに興味があります。たとえば、テキスト文字列を追加します。

操り人形師でそれは可能ですか?

それ以外の場合は、うまく機能します。スクリーンショットを実行しているページにテキストを挿入するだけです。私はubuntu 16.04マシンとノードバージョン9、puppeteerバージョン1.0.0でのみコマンドラインを使用しています

11
tamak

あなたはスクリーンの前にそれを行うことができます

 await page.evaluate(() => {
    let dom = document.querySelector('#id');
    dom.innerHTML = "change to something"
 });
25
Cr.