Testing 如何在Puppeter中迭代一个表,然后将鼠标悬停在具有给定列值的特定行上?

Testing 如何在Puppeter中迭代一个表,然后将鼠标悬停在具有给定列值的特定行上?,testing,integration-testing,puppeteer,ui-automation,Testing,Integration Testing,Puppeteer,Ui Automation,该表的列如下所示: | Organization | Username | Option | ____________________________________________________________________ | Helloworld | username1 | delete icon appear here on hover | | Stackoverflow | test |

该表的列如下所示:

| Organization  | Username      | Option                           |
____________________________________________________________________
| Helloworld    | username1     | delete icon appear here on hover |
| Stackoverflow | test          | delete icon appear here on hover |
| Puppeteer     | username2     | delete icon appear here on hover |
____________________________________________________________________
我想在表上迭代,并将鼠标悬停在选项上,单击Username value=test列的delete图标

如何使用Puppeter实现这一点?

您可以在特定列上使用s(如果列号已知,如示例中所示),它可以在表的行上进行迭代,如下所示:

constnumberofrows=wait page.$$eval('table>tbody>tr',rows=>rows.length)
for(设n=1;ntbody>tr:n子项(${n})>td:n子项(2)`//n行第2列
const currentOption=`table>tbody>tr:nth child(${n})>td:nth child(3)`//nth行第3列
const currentUserString=等待页面。$eval(currentUser,el=>el.innerText)
如果(currentUserString==='test'){
试一试{
等待页面。悬停(当前选项)
等待页面。单击(当前选项)
}捕获{}
}
}

并可用于第三列的
td
s,以实现用户删除。这部分代码取决于实际页面的行为。

Hey@theDavidBarton!这一行
const currentUserString=wait page.$eval(currentUser,el=>el.innerText)
给出
求值失败:ReferenceError:cov_218kt0db29未定义
,你知道为什么吗?(1)如果你将Jest(或任何其他测试库依赖于伊斯坦布尔)与Puppeter一起使用,这个问题有时会发生,这里有一些关于如何修复它的建议:;(2) 如果您试图在
$eval
的作用域之外传递变量,则应将其作为参数传递:(但如果您遵循上面的建议,则不太可能是问题的原因)。希望能有帮助。谢谢,@theDavidBarton!我得到了它!