【问题标题】:How to create xpath locator when element does not have any attributes当元素没有任何属性时如何创建xpath定位器
【发布时间】:2019-11-24 23:14:38
【问题描述】:

如果特定元素没有任何属性,我如何使用 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>

http://prntscr.com/ofnudx

我正在尝试创建一个 xpath 来获取“7 月 15 日 - 7 月 27 日”文本。

【问题讨论】:

  • 您使用哪种语言绑定? Java/Python、C#?

标签: selenium automated-tests ui-automation qa


【解决方案1】:

您可以使用 XPath text() 运算符和 contains() 函数访问 h3 taginnerText() 属性,例如:

//h3[contains(text(),'July 15 - July 27')]

演示:

参考资料:

【讨论】:

  • 我想阅读动态的特定文本。我需要得到那里写的东西。
  • 嗯,这是一个文本节点,所以 //h3[contains(text(),'July 15 - July 27')] 永远不会工作。
  • 那就去//h3[contains(@class,'card-info')]
【解决方案2】:

文本位于 h3 标记下。

你可以试试这个css选择器

h3.card-info.text-clr-tertiary

如果你想要 xpath:

//h3[contains(@class,'card-info text-clr-tertiary')]

您可以使用getText() 方法获取 selenium-Java 库下存在的文本。

【讨论】:

    【解决方案3】:

    要提取文本 7 月 15 日 - 7 月 27 日,您可以使用以下Locator Strategy

    • Javaxpath

      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')]/..")))));
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2011-08-03
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      相关资源
      最近更新 更多