【问题标题】:Playwright - Find multiple elements or class namesPlaywright - 查找多个元素或类名
【发布时间】:2021-06-16 12:40:24
【问题描述】:

我已经阅读了一些与此相关的不同 QA,但似乎都没有。

我正在尝试使用一个名为 mat-radio-checked 的类来定位一个名为 mat-radio-button 的元素(Angular)。然后选择内部文本。

在 Chrome 中这很容易:

https://i.stack.imgur.com/Ev0iQ.png

https://i.stack.imgur.com/lVoG3.png

要在 Playwright 中找到第一个匹配的元素,我可以执行以下操作:

      let test: any = await page.textContent(
      "mat-radio-button.mat-radio-checked"
    );

    console.log(test);

但如果我试试这个:

      let test: any = await page.$$(
      "mat-radio-button.mat-radio-checked"
    );

    console.log(test);
    console.log(test[0]);
    console.log(test[1]);
  });

它不返回我可以选择内部文本的元素数组。

我需要能够找到该类的所有元素,以便我可以使用 expect 来确保返回的内部文本是正确的,例如:

    expect(test).toBe("Australian Citizen");

【问题讨论】:

标签: javascript typescript automation browser-automation playwright


【解决方案1】:

我发现问题是由于页面预先生成并且元素不可用。所以我加了一个waitForSelector:

await page.waitForSelector("mat-radio-button");

const elements = await page.$$("mat-radio-button.mat-radio-checked");
console.log(elements.length);
console.log(await elements[0].innerText());
console.log(await elements[1].innerText());
console.log(await elements[2].innerText());

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 2021-01-25
    • 2021-08-09
    • 2014-02-15
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多