剧作家 - 获取元素集合

问题描述

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

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

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

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

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

解决方法

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

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...