async def test_should_be_able_to_reset_selected_files_with_empty_file_list( page: Page, server): await page.set_content("<input type=file>") page.once("filechooser", lambda file_chooser: file_chooser.set_files(FILE_TO_UPLOAD)) file_length = 0 async with page.expect_file_chooser(): file_length = await page.eval_on_selector( "input", """async picker => { picker.click(); await new Promise(x => picker.oninput = x); return picker.files.length; }""", ) assert file_length == 1 page.once("filechooser", lambda file_chooser: file_chooser.set_files([])) async with page.expect_file_chooser(): file_length = await page.eval_on_selector( "input", """async picker => { picker.click(); await new Promise(x => picker.oninput = x); return picker.files.length; }""", ) assert file_length == 0
async def test_should_accept_single_file(page: Page): await page.set_content( '<input type=file oninput="javascript:console.timeStamp()">') async with page.expect_file_chooser() as fc_info: await page.click("input") file_chooser = await fc_info.value assert file_chooser.page == page assert file_chooser.element await file_chooser.set_files(FILE_TO_UPLOAD) assert await page.eval_on_selector("input", "input => input.files.length") == 1 assert (await page.eval_on_selector( "input", "input => input.files[0].name") == "file-to-upload.txt")
async def test_should_work_when_file_input_is_attached_to_dom(page: Page): await page.set_content("<input type=file>") async with page.expect_file_chooser() as fc_info: await page.click("input") file_chooser = await fc_info.value assert file_chooser