diff --git a/tests/inspector/cli-codegen-2.spec.ts b/tests/inspector/cli-codegen-2.spec.ts
index 4904e17627..2b44c67065 100644
--- a/tests/inspector/cli-codegen-2.spec.ts
+++ b/tests/inspector/cli-codegen-2.spec.ts
@@ -649,7 +649,7 @@ test.describe('cli codegen', () => {
test('should fill tricky characters', async ({ page, openRecorder }) => {
const recorder = await openRecorder();
- await recorder.setContentAndWait(``);
+ await recorder.setContentAndWait(``);
const selector = await recorder.focusElement('textarea');
expect(selector).toBe('textarea[name="name"]');
diff --git a/tests/inspector/cli-codegen-csharp.spec.ts b/tests/inspector/cli-codegen-csharp.spec.ts
index 845e498be6..ce2ac01dc0 100644
--- a/tests/inspector/cli-codegen-csharp.spec.ts
+++ b/tests/inspector/cli-codegen-csharp.spec.ts
@@ -165,13 +165,13 @@ test('should print load/save storageState', async ({ browserName, channel, runCL
});
var context = await browser.NewContextAsync(new BrowserNewContextOptions
{
- StorageStatePath = "${loadFileName}",
+ StorageStatePath = "${loadFileName.replace(/\\/g, '\\\\')}",
});`;
await cli.waitFor(expectedResult1);
const expectedResult2 = `
await context.StorageStateAsync(new BrowserContextStorageStateOptions
{
- Path = "${saveFileName}"
+ Path = "${saveFileName.replace(/\\/g, '\\\\')}"
});
`;
await cli.waitFor(expectedResult2);
diff --git a/tests/inspector/cli-codegen-java.spec.ts b/tests/inspector/cli-codegen-java.spec.ts
index 1b48eed91d..a760234d87 100644
--- a/tests/inspector/cli-codegen-java.spec.ts
+++ b/tests/inspector/cli-codegen-java.spec.ts
@@ -82,10 +82,10 @@ test('should print load/save storage_state', async ({ runCLI, browserName }, tes
await fs.promises.writeFile(loadFileName, JSON.stringify({ cookies: [], origins: [] }), 'utf8');
const cli = runCLI([`--load-storage=${loadFileName}`, `--save-storage=${saveFileName}`, '--target=java', emptyHTML]);
const expectedResult1 = `BrowserContext context = browser.newContext(new Browser.NewContextOptions()
- .setStorageStatePath(Paths.get("${loadFileName}")));`;
+ .setStorageStatePath(Paths.get("${loadFileName.replace(/\\/g, '\\\\')}")));`;
await cli.waitFor(expectedResult1);
const expectedResult2 = `
- context.storageState(new BrowserContext.StorageStateOptions().setPath("${saveFileName}"))`;
+ context.storageState(new BrowserContext.StorageStateOptions().setPath("${saveFileName.replace(/\\/g, '\\\\')}"))`;
await cli.waitFor(expectedResult2);
});
diff --git a/tests/inspector/cli-codegen-javascript.spec.ts b/tests/inspector/cli-codegen-javascript.spec.ts
index 20b4bcb15b..6c8308d7cc 100644
--- a/tests/inspector/cli-codegen-javascript.spec.ts
+++ b/tests/inspector/cli-codegen-javascript.spec.ts
@@ -128,13 +128,13 @@ test('should print load/save storageState', async ({ browserName, channel, runCL
${launchOptions(channel)}
});
const context = await browser.newContext({
- storageState: '${loadFileName}'
+ storageState: '${loadFileName.replace(/\\/g, '\\\\')}'
});`;
await cli.waitFor(expectedResult1);
const expectedResult2 = `
// ---------------------
- await context.storageState({ path: '${saveFileName}' });
+ await context.storageState({ path: '${saveFileName.replace(/\\/g, '\\\\')}' });
await context.close();
await browser.close();
})();`;
diff --git a/tests/inspector/cli-codegen-python-async.spec.ts b/tests/inspector/cli-codegen-python-async.spec.ts
index c2c616623b..29eca794ad 100644
--- a/tests/inspector/cli-codegen-python-async.spec.ts
+++ b/tests/inspector/cli-codegen-python-async.spec.ts
@@ -132,12 +132,12 @@ from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
browser = await playwright.${browserName}.launch(${launchOptions(channel)})
- context = await browser.new_context(storage_state="${loadFileName}")`;
+ context = await browser.new_context(storage_state="${loadFileName.replace(/\\/g, '\\\\')}")`;
await cli.waitFor(expectedResult1);
const expectedResult2 = `
# ---------------------
- await context.storage_state(path="${saveFileName}")
+ await context.storage_state(path="${saveFileName.replace(/\\/g, '\\\\')}")
await context.close()
await browser.close()
diff --git a/tests/inspector/cli-codegen-python.spec.ts b/tests/inspector/cli-codegen-python.spec.ts
index 9b5a20b13c..fe8ccd67b9 100644
--- a/tests/inspector/cli-codegen-python.spec.ts
+++ b/tests/inspector/cli-codegen-python.spec.ts
@@ -116,12 +116,12 @@ test('should print load/save storage_state', async ({ runCLI, channel, browserNa
def run(playwright: Playwright) -> None:
browser = playwright.${browserName}.launch(${launchOptions(channel)})
- context = browser.new_context(storage_state="${loadFileName}")`;
+ context = browser.new_context(storage_state="${loadFileName.replace(/\\/g, '\\\\')}")`;
await cli.waitFor(expectedResult1);
const expectedResult2 = `
# ---------------------
- context.storage_state(path="${saveFileName}")
+ context.storage_state(path="${saveFileName.replace(/\\/g, '\\\\')}")
context.close()
browser.close()
diff --git a/tests/inspector/cli-codegen-test.spec.ts b/tests/inspector/cli-codegen-test.spec.ts
index a61bacfc15..e16af0278a 100644
--- a/tests/inspector/cli-codegen-test.spec.ts
+++ b/tests/inspector/cli-codegen-test.spec.ts
@@ -83,7 +83,7 @@ test('should print load storageState', async ({ browserName, channel, runCLI },
const expectedResult = `const { test, expect } = require('@playwright/test');
test.use({
- storageState: '${loadFileName}'
+ storageState: '${loadFileName.replace(/\\/g, '\\\\')}'
});
test('test', async ({ page }) => {`;
diff --git a/tests/inspector/inspectorTest.ts b/tests/inspector/inspectorTest.ts
index 8ae288f90c..683cc467e5 100644
--- a/tests/inspector/inspectorTest.ts
+++ b/tests/inspector/inspectorTest.ts
@@ -221,11 +221,18 @@ class CLIMock {
});
}
- async waitFor(text: string): Promise {
+ async waitFor(text: string, timeout = 10_000): Promise {
if (this.data.includes(text))
return Promise.resolve();
this.waitForText = text;
- return new Promise(f => this.waitForCallback = f);
+ return new Promise((f, r) => {
+ this.waitForCallback = f;
+ if (timeout) {
+ setTimeout(() => {
+ r(new Error('Timed out waiting for text:\n' + text + '\n\nRecieved:\n' + this.text()));
+ }, timeout);
+ }
+ });
}
text() {