Playwrightの使い方 - ウィンドウ・タブ操作
新しいウィンドウ・新しいタブの作成
playwright.browser.launch()
メソッドでウィンドウを作成していますが、
複数実行することでウィンドウも複数作成されます。
context.newPage()
メソッドを複数実行することでタブを複数作成できます。
タブを切り替えるにはpage.bringToFront()
を使用します。
const pw = require('playwright'); (async () => { //1つ目のブラウザを立ち上げる const browser = await pw.chromium.launch({ headless: false }); const context = await browser.newContext(); const page = await context.newPage(); await page.goto('https://web.biz-prog.net/'); //2つ目のブラウザを立ち上げる。2つのタブを作成する。 const browser2 = await pw.chromium.launch({ headless: false }); const context2 = await browser2.newContext(); const page1 = await context2.newPage(); const page2 = await context2.newPage(); await page1.goto('https://web.biz-prog.net/'); await page2.goto('https://web.biz-prog.net/test/testpage.html'); await page1.bringToFront(); //最初のタブを前面に //2つのブラウザを終了する await browser.close(); await browser2.close(); })();
private async void btnNewWindowTab_Click(object sender, EventArgs e) { var playwright = await Playwright.CreateAsync(); //1つ目のブラウザを立ち上げる var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Headless = false }); var page = await browser.NewPageAsync(); await page.GotoAsync("https://web.biz-prog.net/"); //2つ目のブラウザを立ち上げる。2つのタブを作成する。 var browser2 = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Headless = false }); var context = await browser2.NewContextAsync(); var page1 = await context.NewPageAsync(); var page2 = await context.NewPageAsync(); await page1.GotoAsync("https://web.biz-prog.net/"); await page2.GotoAsync("https://web.biz-prog.net/test/testpage.html"); await page1.BringToFrontAsync(); //最初のタブを前面に //2つのブラウザを終了する await browser.CloseAsync(); await browser2.CloseAsync(); }
from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError with sync_playwright() as p: #1つ目のブラウザを立ち上げる browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("https://web.biz-prog.net/") #2つ目のブラウザを立ち上げる。2つのタブを作成する。 browser2 = p.chromium.launch(headless=False) context2 = browser2.new_context() page1 = context2.new_page() page2 = context2.new_page() page1.goto("https://web.biz-prog.net/") page2.goto("https://web.biz-prog.net/test/testpage.html") page1.bring_to_front() #最初のタブを前面に #2つのブラウザを終了する browser.close() browser2.close()
ウィンドウのサイズの参照/設定
ウィンドウのサイズの取得と変更を行います。
//画面のサイズを取得 console.log(page.viewportSize()); //画面のサイズを設定 await page.setViewportSize({ width: 1920, height: 1080, });
//画面のサイズを取得 Console.WriteLine(page.ViewportSize); //画面のサイズを設定 await page.SetViewportSizeAsync(1920, 1080);
#画面のサイズを取得 print(page.viewport_size) #画面のサイズを設定 page.set_viewport_size({ "width": 1920, "height": 1080 })
ウィンドウの最大化/最小化/全画面
Playwrightには現状は処理中にウィンドウを最大化・最小化・全画面にする仕組みはありません。(参考)
ブラウザ作成時のlaunchOptionsに--start-maximized
を指定すれば、起動時の最大化は可能です。
(全画面は--start-fullscreen
がありますが、動作が確認できませんでした。
代替案として、ウィンドウのサイズを最大と同じサイズに変更する方法があります。
const browser = await pw.chromium.launch({ args: ["--start-maximized"], headless: false }); const context = await browser.newContext({ viewport: null }); const page = await context.newPage(); await page.goto('https://web.biz-prog.net/');