我有一张类似于以下内容的表格:
部分#
价钱
状态
第一部分#
$ 1.00包装
好
第二部分#
$ 2.00
停产
第N部分#
$ N.00
重新排序
我的java代码将查找“Nth Part#”的状态,其中我不知道表有多大,它有多少列,也不知道N是什么(直到运行时)。在Ruby / WATIR中,我会使用表的id来获取它的HTML,然后使用Ruby迭代行直到部分#匹配,然后在Status列中检查该行的相应状态(无论哪一列,但它设置在高清标题的行中。
Selenium的标准表查找函数selenium.getTable(“table.1.2”)仅适用于每个测试包含相同内容的静态表。过度杀戮selenium.get_html_source是一种浪费,因为selenium已经知道如何找到这个表,然后我必须解析整个网页。
关于如何获取表格的html的任何想法,以及迭代行和/或列的最佳方法是什么?
提前致谢。
答案 0 :(得分:1)
最简单的方法是使用getTable
这样的
selenium.getTable("table." + (1 + n) + ".3")
如果您知道n
将在运行时将获得n
行的“状态”单元格。
如果你试图迭代表中的所有行,你可以做这样的事情
try {
for(int n = 1; true; n++) {
String cellContents = selenium.getTable("table." + n + ".3");
//do something with n
}
}
catch {
//handle end of table
}
或者
final int rowCount = (int)selenium.getXPathCount("id('table')/tbody/tr");
for(int n = 1; n < rowCount; n++) {
String cellContents = selenium.getTable("table." + n + ".3");
}
请记住,在getTable(locator.row.column)
中,row
和column
从1开始。
答案 1 :(得分:0)
不完全是你要求的,但我通过将唯一ID(在你的情况下听起来像是部件号)分配给tr
的html id解决了类似的问题。然后我使用Selenium xpath定位器来获取我测试所需的行和列。