如果特定元素没有任何属性,如何使用xpath选择器访问该元素?
<challenge-details-card>
<div class="card-body card-content-container">
<div>
<h1 class="card-title text-clr-tertiary">Custom Name</h1>
<hr class="border-clr-gainsboro">
<h3 class="card-info text-clr-tertiary"><span translate="Challenges.ChallengeRuns" ng-reflect-translate="Challenges.ChallengeRu">Challenge runs: </span>
July 15 - July 27
<!--bindings={
"ng-reflect-ng-if": "true"
}-->
<span>(12 days <span translate="Genesis.GlobalLabels.Left" ng-reflect-translate="Genesis.GlobalLabels.Left">Left</span>!)</span>
</h3><p class="card-copy">Custom Text</p>
</div>
</div>
<div class="card-footer background-clr-light-gray">
<a translate="Genesis.Challenges.ViewChallengeRules" ng-reflect-translate="Genesis.Challenges.ViewChallen">View Challenge Rules</a>
</div>
</challenge-details-card>
我正在尝试创建一个xpath来获取“ 7月15日-7月27日”文本。
答案 0 :(得分:1)
您可以使用XPath text()
运算符结合innerText()函数来访问h3 tag的contains()属性,例如:
//h3[contains(text(),'July 15 - July 27')]
演示:
参考文献:
答案 1 :(得分:0)
该文本显示在 h3 标签下。
您可以尝试使用此 css选择器:
h3.card-info.text-clr-tertiary
如果要使用xpath:
//h3[contains(@class,'card-info text-clr-tertiary')]
您可以使用getText()
方法获取selenium-Java库中显示的文本。
答案 2 :(得分:0)
要提取文本 7月15日-7月27日,您可以使用以下Locator Strategy:
Java 和 xpath :
System.out.println((String)((JavaScriptExecutor)driver).executeScript("return arguments[0].childNodes[2].textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(., 'Challenge runs')]/..")))));