在 Playwright 中获取输入元素的值

Getting value of input element in Playwright

如何 return elem 的值,以便我可以验证它实际上是 1

const elem = await page.$('input#my-input')
await elem.fill('1')

最简单的方法是使用$eval。在这里你可以看到一个小例子:

const playwright = require("playwright");

(async () => {
  const browser = await playwright.chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.setContent(`<input id="foo"/>`);
  await page.type("#foo", "New value")
  console.log(await page.$eval("#foo", el => el.value))
  await page.screenshot({ path: `example.png` });
  await browser.close();
})();

inputValue 方法已添加到 Playwright v1.13.0

await page.inputValue('input#my-input');

它 returns input.value 用于选定的 <input><textarea> 元素。抛出非输入元素。 Read more.

从 1.19 版(可能还有更低版本)开始,不推荐使用元素处理程序。 而不是使用定位器。

page.locator(selector).innerText()

在你的断言情况下它将是

expect(page.locator("input#my-input").innerText().includes("1")).toBeTruthy()

了解更多: https://playwright.dev/docs/api/class-elementhandle#element-handle-fill