mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	
		
			
	
	
		
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | const { firefox } = require("playwright"); | ||
|  | 
 | ||
|  | /** | ||
|  |  * In this script, we will upload a file to a web page. | ||
|  |  *  | ||
|  |  * Steps summary | ||
|  |  * 1. Open the sample file upload at https://cgi-lib.berkeley.edu/ex/fup.html
 | ||
|  |  * 2. Automate file upload with setInputFiles | ||
|  |  */ | ||
|  | 
 | ||
|  | (async () => { | ||
|  |     // Launch a headless browser instance of chromium, webkit or firefox
 | ||
|  | 	const browser = await firefox.launch(); | ||
|  | 
 | ||
|  |     // Use the default browser context to create a new tab and navigate to URL
 | ||
|  |     const page = await browser.newPage(); | ||
|  |     await page.goto('https://cgi-lib.berkeley.edu/ex/fup.html'); | ||
|  | 
 | ||
|  |     // Get an element handle to the file upload input
 | ||
|  |     const handle = await page.$('input[type="file"]'); | ||
|  | 
 | ||
|  |     // Use the setInputFiles API to upload this file. File paths are relative to
 | ||
|  |     // the current working directory. It is also possible to upload multiple files
 | ||
|  |     // or use base64 encoded data, instead of a file. See API docs.
 | ||
|  |     // https://github.com/microsoft/playwright/blob/master/docs/api.md#elementhandlesetinputfilesfiles
 | ||
|  |     await handle.setInputFiles('upload.js'); | ||
|  | 
 | ||
|  |     // Click on the form submit element
 | ||
|  |     await page.click('input[type="submit"]'); | ||
|  | 
 | ||
|  |     // Take a screenshot of the uploaded state and close the browser
 | ||
|  |     await page.screenshot({ path: 'uploaded.png' }); | ||
|  |     await browser.close(); | ||
|  | })(); |