<div class="accordion_browse">
<a target="_blank" href="https://www.silverpages.sg/tools/e-care-locator"
aria-expanded="false" aria-controls="collapseExample">
<span class="browse_img">
<img src="/sites/assets/assets/directory/icons/eldercare.png"/>
</span>
Eldercare Services
<i class="indicator fa fa-chevron-right pull-right" aria-hidden="true"/>
</a>
</div>
注意:所需文字是“Eldercare Services”
代码:
string Eldercare = driver.FindElement(By.XPath("//a[contains(.,'Eldercare Services')")).Text;
Console.WriteLine(Eldercare + " found");
Assert.IsTrue(Eldercare.Contains("Elder"), Eldercare + " not found");
答案 0 :(得分:0)
使用文本节点text()
XPath:"/body/div/text()"
这将检索/body/div
的所有子文本节点。
"/body/div/text()[1]"
将检索/body/div
XPath的附加阅读: https://www.w3schools.com/xml/xpath_examples.asp
答案 1 :(得分:0)
给定的xpath看起来不错,但By.XPath("//a[contains(.,'Eldercare Services')")
示例代码缺少结束方括号:By.XPath("//a[contains(.,'Eldercare Services')]")
使用此修复程序,xpath将提供a
元素
<a target="_blank" href="https://www.silverpages.sg/tools/e:care:locator" aria:expanded="false" aria:controls="collapseExample">
<span class="browse_img">
<img src="/sites/assets/assets/directory/icons/eldercare.png"/>
</span>
Eldercare Services longtext
<i class="indicator fa fa:chevron:right pull:right" aria:hidden="true"/>
</a>
缺少的括号应该修复代码。
如果Selenium可以使用文本元素,那么
//a[contains(.,'Eldercare Services')]/text()
结果将是一个包含3个字符串的字符串数组。中间的一个具有预期的字符串,因为在span之前和i之后的元素可能会有两个空字符串。
Text =
Text =
Eldercare Services longtext
Text =
如果对文本使用第二个过滤器,则只会产生预期的字符串
// a [contains(。,'Eldercare Services')] / text()[contains(。,'Elder')]