Java 如何在htmlunit中获得同名的第二个表和第三个表

Java 如何在htmlunit中获得同名的第二个表和第三个表,java,htmlunit,Java,Htmlunit,我正在使用HtmlUnit和java。在我的页面中,我有许多表,但有4个表具有相同的名称和相同的属性。我想分别处理这4个表。如何获取这4个表中的第二个表和第三个表?您有一种方法可以传递页面中的所有对象,只需传递要选择的元素(在本例中为“table”),即可获取一个数组x中的所有表 var x = getElementsByTagName("table"); var nTables = x.length 现在很简单,数组x的第一个元素是第一个表,依此类推 结论:对于对象,不需要知道名称、ID。。

我正在使用HtmlUnit和java。在我的页面中,我有许多表,但有4个表具有相同的名称和相同的属性。我想分别处理这4个表。如何获取这4个表中的第二个表和第三个表?

您有一种方法可以传递页面中的所有对象,只需传递要选择的元素(在本例中为“table”),即可获取一个数组x中的所有表

var x = getElementsByTagName("table");
var nTables = x.length
现在很简单,数组x的第一个元素是第一个表,依此类推

结论:对于对象,不需要知道名称、ID。。。要访问任何页面上的每个对象,只需获取所需的所有元素,并启动实例变量和比较即可

非常好:)

使用,或。这两个函数都返回一个HtmleElement列表,但在XPath上,您可以进行筛选以仅获取所需的表

final WebClient web = new WebClient();
final Page page = web.getPage("...");
List<?> tables = page.getElementsByName("repetitive_table_name");
HtmlElement secondTable = (HtmlElement) tables.get(1);
HtmlElement thirdTable = (HtmlElement) tables.get(2);
final-WebClient-web=new-WebClient();
最终页面=web.getPage(“…”);
列表表=page.getElementsByName(“重复的表名”);
HtmleElement secondTable=(HtmleElement)tables.get(1);
HtmleElement thirdTable=(HtmleElement)tables.get(2);

final-WebClient-web=new-WebClient();
最终页面=web.getPage(“…”);
//这将像getElementsByName一样返回
List tables=page.getElementsByXpath(//table[@id='repeative\u table\u name']);
HtmleElement secondTable=(HtmleElement)tables.get(1);
HtmleElement thirdTable=(HtmleElement)tables.get(2);
final WebClient web = new WebClient();
final Page page = web.getPage("...");
// This will return like the getElementsByName
List<?> tables = page.getElementsByXpath("//table[@id='repetitive_table_name']");
HtmlElement secondTable = (HtmlElement) tables.get(1);
HtmlElement thirdTable = (HtmlElement) tables.get(2);