【问题标题】:Playwright - get a collection of elements剧作家 - 获取元素的集合
【发布时间】:2021-05-06 16:43:31
【问题描述】:

我想针对一个网页编写一个测试,该网页在一个简单的 HTML 表格中返回一堆数据。其中一列是订单号 - 所以我想获取订单号列表。在 Selenium 中,这真的很简单

Elements _elements = Driver.FindElements(Map.OrderNumbers.FoundBy);

其中“Map.OrderNumbers”是一个简单的 XPath 表达式。我尝试使用 Playwright 等价物

const orderNumbers = await page.$$(Map.OrderNumbers)

但这不起作用——它只是给了我很多无用的 GUID 和元素句柄。我只想要一个数字数组。我尝试到处搜索示例,但没有找到。

【问题讨论】:

  • 您可以将 XPath 表达式传递给 $$ 函数。

标签: element playwright


【解决方案1】:

page.$$() 返回一个元素句柄的承诺,这是预期的行为。

如果您需要检索某些文本或值,则需要以不同的方式进行。这取决于具体的 DOM,因为您不共享它,所以很难为您提供帮助,但作为示例,假设这些元素具有您想要检索的 value 属性,那么这将是一种方式:

const orderNumbers = await page.$$eval('.myelement', el => el.value);

在此之后,您最终会得到一个从这些 .myelement 元素的 vlaue 属性中检索到的具体值数组。

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2023-02-02
    • 1970-01-01
    • 2021-11-24
    • 2022-11-18
    • 2021-10-20
    • 2022-08-02
    • 2021-09-27
    • 2021-08-18
    相关资源
    最近更新 更多