请考虑以下几点:
<span>
<li>
<a href="javascript:__doPostBack('Send', 'ShowPackageDetails');"> Recall </a>
</li>
</span>我想通过文本值'Recall‘获取此元素的XPath。
我知道我也可以使用以下命令来选择它:
//a[contains(@href, 'ShowPackageDetails')]但是页面上的其他元素在其href属性中也包含相同的字符串。在这种情况下,我更喜欢基于实际文本而不是它的属性进行选择,因为我知道它是唯一的,并且我不必求助于索引使用。
我试过了
//a[contains(@value, 'Recall')]以及text()='Recall'的其他各种组合,但我根本没有得到任何结果。
发布于 2012-02-09 02:46:13
@用于选择属性。请改用以下内容:
//a[contains(., 'Recall')]发布于 2012-02-09 02:43:11
试试这个:
Html
<span>
<li>
<a href="javascript:__doPostBack('Send', 'ShowPackageDetails');">Recall</a>
</li>
</span>XPath
//a[text()="Recall"]这可能与文本是" Recall“而不是”Recall“有关。我删除了你标记中的空格。
发布于 2012-02-09 02:44:33
如果您尝试解析已生成的Html页面,如您提供的示例中所示,则应使用Html Agility Pack。这是一个C#解决方案(我可以在您的问题标签中看到。
HtmlDocument doc = new HtmlDocument();
doc.Load("yourFile.html");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
//Check the text and do what you want...
}https://stackoverflow.com/questions/9199366
复制相似问题