Java 如何识别表格中的单元格并单击它?
页面上有一个简单的表,第一个raw是列的标题,第二行/raw是动态更改的值Java 如何识别表格中的单元格并单击它?,java,html,selenium,Java,Html,Selenium,页面上有一个简单的表,第一个raw是列的标题,第二行/raw是动态更改的值 <div id = ...> <table ...> <tbody> <tr> ... <tr> <tr> <td class="x11 x22" nowrap> <a class="xl" href="search"> </a>
<div id = ...>
<table ...>
<tbody>
<tr> ... <tr>
<tr>
<td class="x11 x22" nowrap>
<a class="xl" href="search"> </a> </td>
<td>...
<td>...
....
...
...
...
....
识别单元格的最佳方法是什么?单击第一列/第二行?
非常感谢 如果要单击第一个元素,则xpath将是:
(//a[@href='search'])[1]
(//a[@href='search'])[2]
第二个要素是:
(//a[@href='search'])[1]
(//a[@href='search'])[2]
等等
完整代码应该如下所示:
WebElement element = driver.findElement(By.xpath("(//a[@href='search'])[2]"));
element.click();
取决于标记的其余部分,但您可以使用//a[@href='search']的xpath。。。假设这是独一无二的。他们真的应该在标记中使用唯一的ID。href不是唯一的…好吧,假设类也不是唯一的,您需要dom遍历,这不是很理想。我会让工程师添加唯一的ID。可能有一种方法可以构建数组并单击元素[0,1]例如?是的,您可以使用我发布的与findElements相同的xpath。。。(如果页面是通过javascript生成的,则需要循环并在抛出过时元素异常时重新调用)假设DOM总是以相同的顺序返回链接,则可以为其选择索引。但仍然是一个非常脆弱的定位器。使用find.element…[2]。click()?@BobBolden更新了我的答案并添加了代码。请现在检查