有什么方法可以使用 testcafe 和 VS Code 找到选择器的运行时值

Is there any way to find the runtime values of a Selector with testcafe and VS Code

我正在尝试使用 VSCode 中的节点调试 testcafe 测试,并想验证代码中使用的选择器是否标识了正确的元素并检索函数中声明的变量的值 /使用选择器分配的变量。

我使用以下命令在调试模式下启动 test.js 文件: "C:\Program Files\nodejs\node.exe" --inspect-brk=21496 testcafe.js chrome tests.js --env=dev --skip-js-errors

测试在断点处停止,当到达下一行时,我想验证该变量(元素)内到底是什么,这样我就可以验证选择器是否正在选择所需的元素。

let element= Selector(".unique_selector_class").parent(2);

我希望在调试模式下找到所选元素的属性。 e.x., 'element' 的长度,如果它是一个数组,元素的外部文本。

更新: 我认为我之前所说的有点令人困惑。我有一个这样的方法,它被测试调用。

`async deleteSelectedComponentsMethod() 
{ 
  let element = await Selector(".uniqueSelectorClass"); 
  let numberOfSelectedComponents = element.length; 
  for (let i = 0; i < numberOfSelectedComponents; i++) 
  { 
     await t.click(deleteSelectedComponent.nth(i)); 
  } 
}`

在这个方法中,我想查看变量 'element' 中的内容,以便我可以编写代码中的逻辑。 PS: 试图识别的元素只有在鼠标悬停时才可见。

The value in the variable 'element' returns a function that does not help to find the runtime values in the element

更新

当多个元素匹配时,

Selector 不会 return 数组。使用 await selector.count 检索匹配元素的数量并使用 selector.nth() 枚举它们:

async deleteSelectedComponentsMethod() 
{ 
  let element = Selector(".uniqueSelectorClass"); 
  let numberOfSelectedComponents = await selector.count; 
  for (let i = 0; i < numberOfSelectedComponents; i++) 
  { 
     await t.click(deleteSelectedComponent.nth(i)); 
  } 
}

阅读 Using Selectors 文章中有关 selector.count 属性 的更多信息。

原始答案

您可以使用 await 关键字来检索有关由选择器表示的元素的信息。一旦我们实现此功能:#3244,您将能够通过在浏览器控制台中键入选择器表达式来调试选择器。