我正在建立一个网络浏览器来获取网页的信息。我想要正确的xpath表示法来获取信息。
<div class="inner">
<div class="col">
<h2><a href="land-in-kadawatha-for-sale-gampaha-442">Land in Kadawatha</a></h2>
<div class="meta">
<div class="date"></div>
<span class="category">Other Lands</span>,
<span class="location">Gampaha</span>
</div>
</div>
如何使用xpath访问“Kadawatha的土地”。
答案 0 :(得分:2)
没有xsl的独立XPath:
//div[contains(concat(" ", @class, " "), " inner ")]/div[contains(concat(" ", @class, " "), " col ")]/h2[1]/a
答案 1 :(得分:0)
使用此功能:
<xsl:function name="markup:has-class" as="xs:boolean">
<xsl:param name="el" as="element()" />
<xsl:param name="class-name" as="item()" />
<xsl:sequence select="$el/@class and tokenize(upper-case(normalize-space($el/@class)), ' ') = upper-case(string($class-name))" />
</xsl:function>
你可以这样做:
*[markup:has-class(., 'inner')]/*[markup:has-class(., 'col')]//h2/string()
根据您的上下文节点进行相应调整。
答案 2 :(得分:0)
基于该片段
//div[@class='col']/h2/a
然后你的代码看起来像
IWebElement element = driver.FindElement(By.XPath("//div[@class='col']/h2/a"));
string elementText = element.Text();