fix: wait for video to finish even if page was closed (#447)
This commit is contained in:
@@ -37,7 +37,7 @@ import java.util.regex.Pattern;
|
||||
* // Create a new page inside context.
|
||||
* Page page = context.newPage();
|
||||
* page.navigate("https://example.com");
|
||||
* // Dispose context once it"s no longer needed.
|
||||
* // Dispose context once it is no longer needed.
|
||||
* context.close();
|
||||
* }</pre>
|
||||
*/
|
||||
|
||||
@@ -19,8 +19,11 @@ package com.microsoft.playwright;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
@@ -101,4 +104,25 @@ public class TestScreencast extends TestBase {
|
||||
Path videoPath = page.video().path();
|
||||
assertFalse(Files.exists(videoPath));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldWaitForVideoFinishWhenPageIsClosed(@TempDir Path videosDir) throws IOException {
|
||||
try (Browser browser = browserType.launch(createLaunchOptions())) {
|
||||
BrowserContext context = browser.newContext(
|
||||
new Browser.NewContextOptions()
|
||||
.setRecordVideoDir(videosDir)
|
||||
.setRecordVideoSize(320, 240)
|
||||
.setViewportSize(320, 240));
|
||||
Page page = context.newPage();
|
||||
page.evaluate("() => document.body.style.backgroundColor = 'red'");
|
||||
page.waitForTimeout(500);
|
||||
// First close page manually.
|
||||
page.close();
|
||||
context.close();
|
||||
}
|
||||
List<Path> files = Files.list(videosDir).collect(Collectors.toList());
|
||||
assertEquals(1, files.size());
|
||||
assertTrue(Files.exists(files.get(0)));
|
||||
assertTrue(Files.size(files.get(0)) > 0);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
1.12.0-next-1621019018000
|
||||
1.12.0-next-1621402179000
|
||||
|
||||
Reference in New Issue
Block a user