Css 跟踪webclient页表中没有唯一id的特定行,该表同时填充数据

Css 跟踪webclient页表中没有唯一id的特定行,该表同时填充数据,css,selenium,xpath,automation,Css,Selenium,Xpath,Automation,我正在使用selenium-x路径css开发web客户端GUI自动化测试工具 使用此webclient,它在下面板上有一个面板区域。 此面板中有一个表,其行没有唯一id 场景:当我通过webclient GUI添加VM时,单击finish按钮,下面面板区域的表列表位于任务开始的第一行 td:表的第[1]行中的taskname、date和target 在这种情况下,如果正在执行单个任务,那么该表将只有一行 这样我就可以在 tr[1]td[1]=“创建虚拟机”并确认任务已启动 但是,如果同时创建多个

我正在使用selenium-x路径css开发web客户端GUI自动化测试工具

使用此webclient,它在下面板上有一个面板区域。 此面板中有一个表,其行没有唯一id

场景:当我通过webclient GUI添加VM时,单击finish按钮,下面面板区域的表列表位于任务开始的第一行

td:表的第[1]行中的taskname、date和target

在这种情况下,如果正在执行单个任务,那么该表将只有一行

这样我就可以在
tr[1]td[1]=“创建虚拟机”
并确认任务已启动

但是,如果同时创建多个VM,比如:3(vm1、vm2、vm3),那么该表将

tr[1]td[1]

tr[2]td[1]

tr[3]td[1]

  • 所有这些都将创建虚拟机

我的问题是如何跟踪特定任务,比如说:vm2使用selenium xpath css,因为表rowid没有唯一的id

假设VM名称在第一列,而您想要的webelement在第二列。你可以这样做

//*[contains(text(),'vm2')]../../td[2]

使用“包含文本”查找列,然后转到其父节点。然后转到所需的列

如果项目按启动顺序显示,则执行以下操作:
//表//tr[x+1]/td[1]
如果相反,则:
//表//tr[position()=last()+1-x]/td[1]

其中x是虚拟机编号。

Share
HTML
code for the same如果可能的话,您可能希望显示带有相同屏幕截图的HTML。通过查看表格,您如何知道您正在跟踪哪个虚拟机?是按这一行的索引吗?@becixb:太好了!非常感谢你的提问。即使在视觉上,我们也无法识别该行属于哪个vm的创建。让我检查一下这一点是否有产品缺陷。@kanchana好的,如果虚拟机是根据它开始的时间显示的(从顶部或底部),那么我有一个答案给你。我的场景是有3列taskname、target和status。这里TaskName将是创建任务的“Create_vm”。因此,对于创建vm1、vm2、vm3,它将在taskname下显示“create_vm”,并且vm名称将不会显示在panel表中的任何位置。例如:如果同时创建了1000个虚拟机vm1..vm1000,则所有taskname列将只有“create_vm”作为数据。@kanchana是否有具有唯一名称的列?否:(这是我的问题…..没有列有唯一的数据/id。但是行id正好有16位数字。但即使是这样,wrt状态也在不断变化。例如,对于0%5%…10%…90%…100%已完成。行id对于特定行的所有这些状态都在不断变化,并且只有在状态完成时才保持不变。因为我必须确认任务已经开始,这没有帮助:(@kanchana这个百分比是附加在id末尾的吗?如果是这样,您可以使用//*[contains(id,'your_id')],它会工作。@GaurangSingh:不,整个id正在更改,如果启动新任务,则底部面板中所有现有行的行id也会随机更改。