使用selenium我尝试点击<td>
元素,该元素出现在<td>
元素之前,该元素的linkText为&#34; Main&#34;。我试图点击此图片中突出显示的元素:
我要点击的<td>
元素和后面的元素都在同一个<tr>
元素中,在图片中显示为id=5
。
此元素对应于下方突出显示的整个行。注意它的linkText是&#34; Green&#34;就像它下面的元素一样。因此,我无法为要点击的<td>
元素使用xpath / css选择器。
我试图点击突出显示的&#34;绿色&#34;。这就是为什么我尝试点击<{1>}元素之前元素&#34; Main&#34;作为linkText。
我有这段代码,但我不知道如何在此代码匹配的元素之前获取元素:<td>
一切有帮助,谢谢
答案 0 :(得分:2)
您可以使用following-sibling
axis:
//td[following-sibling::td[1]/a = 'Main']
基本上,这会给你一个td
元素,其中包含一个带有文本&#34; Main&#34;的链接。在第一个td
兄弟姐妹内。
或者,一旦您按链接文字找到了链接,就可以使用preceding
,这将为您提供除父td
元素之外的第一个前一个td
元素:
前一轴表示上下文之前的所有节点 文档中的节点,除了祖先,属性和命名空间 节点
WebElement templateFound = driver.findElement(By.linkText("Main"));
templateFound.findElement(By.xpath("preceding::td"));
答案 1 :(得分:1)
使用XPATH应该很容易。我假设您要选择的td
的文字为绿色
//a[.='Main']/../../td[.='Green']