Playwright その他の操作

PlaywrightでAPIへリクエスト送信する

PlaywrightでAPIにデータをGET/POST送信する方法です。

サンプル

						const pw = require('playwright');

						(async () => {
						  const browser = await pw.chromium.launch({ headless: false });
						  const context = await browser.newContext();
						  const page = await context.newPage();
						
						  //POST
						  const response = await page.request.post("https://web.biz-prog.net/test/post.php", {
							data: {
								param1: "data1",
								param2: 1111
							},
							headers: {
								authorization: `Bearer abcdefghijklmnopqrstuvwxyz`
							}
						  });
						
						  console.log(response.status());
						  console.log((await response.body()).toString());
						
						  //GET
						  const response2 = await page.request.get("https://web.biz-prog.net/test/get.php", {
							params: {
								param3: "data3",
								param4: "2222"
							},
							headers: {
								authorization: `Bearer abcdefghijklmnopqrstuvwxyz`
							}
						  });
						
						  console.log(response2.status());
						  console.log((await response2.body()).toString());
						
						  //await browser.close();
						})();
					
						private async void btnPost_Click(object sender, EventArgs e)
						{
							using var playwright = await Playwright.CreateAsync();
							await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Headless = false });
							var page = await browser.NewPageAsync();
				
							//POST
							var data = new Dictionary { { "param1", "data1" } ,{ "param2", 1111 } };
							var head = new Dictionary { { "headers", "Bearer abcdefghijklmnopqrstuvwxyz" } };
				
							var response = await page.APIRequest.PostAsync("https://web.biz-prog.net/test/post.php", new () {
								DataObject = data,
								Headers = head
							});
				
							Debug.WriteLine(response.Status);
							Debug.WriteLine(System.Text.Encoding.UTF8.GetString(await response.BodyAsync()));
				
							//GET
							var param = new Dictionary { { "param3", "data3" }, { "param4", "data4" } };
				
							response = await page.APIRequest.GetAsync("https://web.biz-prog.net/test/get.php", new()
							{
								Params = param,
								Headers = head
							});
				
							Debug.WriteLine(response.Status);
							Debug.WriteLine(System.Text.Encoding.UTF8.GetString(await response.BodyAsync()));
						}
					
						from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError

						with sync_playwright() as p:
							browser = p.chromium.launch(headless=False)
							page = browser.new_page()
						
							# POST
							response = page.request.post("https://web.biz-prog.net/test/post.php", 
								data = {
									"param1": "data1",
									"param2": 1111
								},
								headers = {
									"authorization": "Bearer abcdefghijklmnopqrstuvwxyz"
								}
							)
						
							print(str(response.status))
							print(response.body())
						
							# GET
							response = page.request.get("https://web.biz-prog.net/test/get.php", 
								params = {
									"param3": "data3",
									"param4": "data4"
								},
								headers = {
									"authorization": "Bearer abcdefghijklmnopqrstuvwxyz"
								}
							)
						
							print(str(response.status))
							print(response.body())
						
							browser.close()
					

実行結果

PlaywrightでPOST送信

参考