使用selenium,我试图单击一个<td>元素,该元素出现在<td>元素之前,该元素的linkText为"Main“。我试图单击此图像中突出显示的元素:

我想单击的<td>元素和后面的元素都在同一个<tr>元素中,在图像中显示为具有id=5。
此元素对应于下面高亮显示的整个行。注意它的linkText是“绿色”的,就像它下面的元素一样。因此,我不能为我想要单击的<td>元素使用xpath/css选择器。

我试着点击突出显示的“绿色”。这就是为什么我试图在以"Main“作为其<td>的的元素之前单击元素的原因。
我有这段代码,但我不知道如何在该代码匹配的元素之前获得元素:WebElement templateFound = driver.findElement(By.linkText("Main"));
任何有用的东西,谢谢
发布于 2015-11-23 04:12:47
您可以使用 axis
//td[following-sibling::td[1]/a = 'Main']基本上,这将为您提供一个td元素,该元素在后面的第一个td兄弟级中具有文本“主”的链接。
或者,一旦您通过链接文本定位了链接,就可以使用preceding,这将为您提供除父td元素之外的第一个td元素:
前一个轴指示文档中上下文节点之前的所有节点,但任何祖先、属性和命名空间节点除外。
WebElement templateFound = driver.findElement(By.linkText("Main"));
templateFound.findElement(By.xpath("preceding::td"));发布于 2015-11-23 04:09:30
使用XPATH应该很容易。我假设您要选择的td的文本为绿色
//a[.='Main']/../../td[.='Green']https://stackoverflow.com/questions/33863531
复制相似问题