硒IDE - 我可以选择基于列的内容一行来验证其他列?(Selenium IDE - Can I

2019-07-29 23:16发布

我测试使用Selenium IDE的应用程序。 有不稳定行排序表 - 这意味着我需要验证在每个测试运行的不同行的元素。

我想用已知的首列查找行文字; 然后验证的同一行中的其他列。

该测试是这样的:

store        || //form/table                    || tableXpath
store        || 3                               || initialsRow
verifyTable  || ${tableXpath}.${initialsRow}.0  || Initials
verifyTable  || ${tableXpath}.${initialsRow}.1  || MJ
verifyTable  || ${tableXpath}.${initialsRow}.2  || MH

而不是硬编码“initialsRow”值; 是不是可以动态地找到行索引?

Answer 1:

我找到的解决方案是使用Selenium的storeElementIndex命令。 它让HTML元素相对于其父的索引。

见http://release.seleniumhq.org/selenium-core/1.0.1/reference.html

我改变了测试,如下所示:

store             || //form/table                                 || tableXpath
storeElementIndex || ${tableXpath}//tr/td[text() = "Initials"]/.. || initialsRow
verifyTable       || ${tableXpath}.${initialsRow}.1               || MJ
verifyTable       || ${tableXpath}.${initialsRow}.2               || MH

XPath查询//form/table//tr/td[text() = "Initials"]/..发现'TD'元件上方包含文本“缩写”的'TR'元件。 硒存储这个“TR”元件相对于任何它的父元素是的索引。



Answer 2:

好了,现在我发现,硒能计算。 不幸的是不会隐象${tableXpath}.${initialsRow + 1}.1 。 所以我增加了一个额外的命令:

storeEval || ${ORBInitialPort} + 1 || ORBInitialPortRow

和使用ORBInitialPortRow代替ORBInitialPort作为索引。



文章来源: Selenium IDE - Can I select a row based on column content to verify other columns?