chromeブラウザの自動化(以前はSeleniumを使用していましたが、ページが完全に読み込まれるまでブラウザが待機していなかったため、頭痛の種がありました)のために人形劇をテストしています。
Puppeteerのインスタンスを起動すると、画面の半分以下のコンテンツがスクロールバー付きで表示されます。全画面表示にするにはどうすればよいですか?
const puppeteer = require('puppeteer');
async function test(){
const browser = await puppeteer.launch({
headless: false,
});
const page = await browser.newPage();
await page.goto('http://google.com')
}
test()
最初のページは正常に読み込まれるようですが、ページにアクセスするとすぐにスクロール可能になり、ページが小さくなります。
おそらく、実際のブラウザが持っている特定の画面サイズを設定したいと思うでしょう。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({ width: 1366, height: 768});
await page.goto('https://example.com', {waitUntil: 'networkidle2'});
await page.screenshot({path: 'example.png'});
browser.close();
})();
起動時にオプションを使用できます
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
args:[
'--start-maximized' // you can also use '--start-fullscreen'
]
});
const page = await browser.newPage();
await page.setViewport({ width: 1366, height: 768});
await page.goto('https://example.com', {waitUntil: 'networkidle2'});
await page.screenshot({path: 'example.png'});
browser.close();
})();
関連するプロパティを含むコードスニペット
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch(
{
headless: false, //defaults to true
defaultViewport: null, //Defaults to an 800x600 viewport
executablePath: 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe',
//by default puppeteer runs Chromium buddled with puppeteer
args:['--start-maximized' ]
});
const page = await browser.newPage();
await page.goto('https://example.com');
})();
Puppeteer Documentation によると:
page.setViewport(viewport)
viewport
< オブジェクト >
width
< number >ピクセル単位のページ幅。height
< number >ページの高さ(ピクセル単位)。deviceScaleFactor
< number >デバイスのスケール係数を指定します(dprと見なすことができます)。デフォルトは1
です。isMobile
< boolean >meta viewport
タグを考慮するかどうか。デフォルトはfalse
です。hasTouch
< boolean >ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトはfalse
ですisLandscape
< boolean >ビューポートが横向きモードかどうかを指定します。デフォルトはfalse
です。- 戻り値:< 約束 >
[〜#〜]注[〜#〜]特定の場合、ビューポートを設定すると、
isMobile
を設定するためにページが再読み込みされますまたはhasTouch
プロパティ。1つのブラウザに複数のページがある場合、各ページに独自のビューポートサイズを設定できます。
したがって、 page.setViewport()
を使用してページの幅と高さを設定できます。
await page.setViewport({
width: 1366,
height: 768,
});
注:
page.setViewport()
を呼び出すときは、await
演算子を必ず使用してください。関数は非同期です。