我想使用XPath在文本后面找到链接。
我想使用XPath在文本后面找到链接。例如,通过“ what10”找到“ one4”。您只能使用文本消息“ what10”,但不能以任何其他方式使用它,因为此页面上的信息将更改。我想得到的是“ one4”链接节点。
<body>
<p>
<a href="/dy/dy5.jsp?funid=50">so</a>
<br>what1 <a href="/dy/dy5.jsp?funid=34+">one</a>
<br>what2<a href="/dy/dy5.jsp?funid=35+">two</a>
<br>what11<a href="/dy/dy5.jsp?funid=43+">one4</a>
<br>what3<a href="/dy/dy5.jsp?funid=36+">three</a>
<br>what4<a href="/dy/dy5.jsp?funid=37+">one1</a>
<br>what5<a href="/dy/dy5.jsp?funid=38+">two2</a>
<br>what6<a href="/dy/dy5.jsp?funid=39+">three3</a>
<br>what7<a href="/dy/dy5.jsp?funid=40+">one3</a>
<br>what8<a href="/dy/dy5.jsp?funid=41+">two3</a>
<br>what9<a href="/dy/dy5.jsp?funid=42+">three3</a>
<br>what10<a href="/dy/dy5.jsp?funid=43+">one4</a>
<br><a href="/dy/dy5.jsp?funid=44+">just return</a>
<br></p>
</body>
出于某些特殊原因,我想通过的是what10的文本定位到one4。
请帮助我。
答案 0 :(得分:0)
硒不支持xpath-2.0
,但使用xpath-1.0
您要引用的元素,即包含文本 what10 的元素是文本节点,而 Selenium 不能将其用作参考。因此,将不可能找到参照文本 what10 的文本为 one4 的节点。或者,如果所需节点始终是最后一个节点,但最后一个节点,则可以使用以下解决方案:
xpath :
driver.findElement(By.xpath("//body/p//a[position()=last()-1]"));
根据@MosheSlavin的反问题,以下是快照,用于演示 XPath 的工作原理:
答案 1 :(得分:0)
您可以在下面的行中使用
WebElement loginLink = driver.findElement(By.linkText("one4"));