在 Mac 上的 Playwright 中运行此测试:
import {chromium, test} from "@playwright/test"
test("login test demo", async() => {
const browser = await chromium.launch({
headless: false
});
const context = await browser.newContext();
const page = await context.newPage();
(await page).goto ("https://ecommerce-playground.lambdatest.io");
(await page).hover("//a[@data-toggle='dropdown']//span[contains(.,'My account')]");
(await page).click("text=Login")
})
在我的控制台中导致此错误:
tests/login.test.ts:3:6 › login test demo
at tests/login.test.ts:11
9 | const page = await context.newPage();
10 |
> 11 | (await page).goto ("https://ecommerce-playground.lambdatest.io");
| ^
12 | (await page).hover("//a[@data-toggle='dropdown']//span[contains(.,'My account')]");
13 | (await page).click("text=Login")
14 |
at /Users/dwayne/Documents/Development/Learn-Playwright /tests/login.test.ts:11:17
1 passed (2.4s)
1 error was not a part of any test, see above for details
Dwaynes-MacBook-Pro:Learn-Playwright dwayne$
无需在测试中创建浏览器。使用预先构建的
page
。如果你想全神贯注地运行,请使用 npx playwright test --headed
或在配置中进行设置。
请勿在
await
调用中使用括号,并避免使用 XPath。
import {expect, test} from "@playwright/test"
test("login test demo", async ({page}) => {
await page.goto("https://ecommerce-playground.lambdatest.io");
await page.getByRole("link", {name: "My account"})
.evaluate(el => el.click());
await expect(page).toHaveURL(/\/index\.php\?route=account\/login$/);
});
在实际测试中,您希望避免不受信任的点击,但由于可见性,受信任的点击在这里不起作用,因此我们必须回退。