【发布时间】:2017-09-22 22:59:19
【问题描述】:
我正在尝试在一个每天更改名称的网站中获取链接。结构与此类似(但有更多级别):
<li>
<div class = "contentPlaceHolder1">
<div class="content">
<p>
<strong>'Today's File Here:<strong>
</p>
</div>
</div>
</li>
<li>...<li>
<li>...<li>
<li>...<li>
<li>
<div class = "contentPlaceHolder1">
<div class="content">
<div class="DocLink">
<li>
<a href = "http://changingURL" class="txtLnk">Download</a>
</li>
</div>
</div>
</div>
</li>
<li>...<li>
etc...
如果我使用
找到页面中紧挨在其上方的文本(将保持不变)IWebElement foundTextElement = chrome.FindElement(By.XPath("//p/strong['Today's File Here:']"));
如何使用 XPath(或替代解决方案)在页面中找到下一个链接?我不确定如何在此之后搜索下一个元素。
如果我使用
IWebElement link = chrome.FindElement(By.XPath("//a[@class='txtLnk'"));
然后这会找到页面中的第一个链接。我只希望它在 'foundTextElement' 之后第一次出现
我已经通过向上导航到 <li> 上方的父级树并使用 By.XPath("following-sibling::*[4]/div/div/div/li/a[@class='txtLnk']") 找到第 4 个兄弟姐妹,但这对我来说似乎有点不稳定。
我可以解析 HTML,直到它在 html 中找到下一个匹配项,但想知道是否有更聪明的方法来做到这一点?
谢谢。
【问题讨论】: