【问题标题】:Python Selenium - How to find specific text inside spanPython Selenium - 如何在跨度内查找特定文本
【发布时间】:2019-03-23 12:05:43
【问题描述】:

试图定位 span 元素内的特定文本,这将用作成功测试的基础,但无法使其正常工作。有人可以帮忙吗? 我想在 span 内再次检索文本,作为证明我正在寻找的更新已经完成的基础(在我将更新文本发布到记录的代码中)

我的代码如下——

# Check for the update
    check_work_info = driver.find_element(By.XPATH, "//*/span[contains(text(),'AUTOMATED TESTING INCIDENT CREATE 2018-10-18')]")
    print(check_work_info)

引发的错误是 -

selenium.common.exceptions.NoSuchElementException:消息:无法 定位元素: //*/span[contains(text(),'AUTOMATED TESTING INCIDENT 创建 2018-10-18')]

源代码的 HTML sn-p -

<div class="sn-card-component sn-card-component_summary sn-card-component_summary_spacing ng-scope" ng-repeat="journal in ::entry.entries.journal">
    <div class="sn-widget sn-widget-textblock state-expanded" ng-class="{ 'state-expanded': journal.showMore || expandEntries }">
        <span class="sn-widget-textblock-body sn-widget-textblock-body_formatted ng-binding" ng-bind-html="parseSpecial(journal.new_value)">AUTOMATED TESTING INCIDENT UPDATE 2018-10-18</span>
        <!-- ngIf: ::journal.is_truncated -->
    </div>
    <!-- ngIf: ::journal.new_value.length > 200 -->
    <!-- ngIf: ::journal.new_value.length > 200 -->
</div>
<div class="sn-widget sn-widget-textblock state-expanded" ng-class="{ 'state-expanded': journal.showMore || expandEntries }">
    <span class="sn-widget-textblock-body sn-widget-textblock-body_formatted ng-binding" ng-bind-html="parseSpecial(journal.new_value)">AUTOMATED TESTING INCIDENT UPDATE 2018-10-18</span>
    <!-- ngIf: ::journal.is_truncated --></div>
    <span class="sn-widget-textblock-body sn-widget-textblock-body_formatted ng-binding" ng-bind-html="parseSpecial(journal.new_value)">AUTOMATED TESTING INCIDENT UPDATE 2018-10-18</span>

【问题讨论】:

  • 文本似乎是"AUTOMATED TESTING INCIDENT UPDATE 2018-10-18",但不是"AUTOMATED TESTING INCIDENT CREATE 2018-10-18"
  • 您在执行必要的操作以将其更改为更新后尝试定位该元素?您是否尝试添加一些等待?
  • 是的,很抱歉,我在提出问题后才意识到文本有所不同。无论如何,这有效 check_work_info = driver.find_element(By.XPATH, "//*/span[contains(text(),'AUTOMATED TESTING INCIDENT UPDATE 2018-10-18')]") 然后 .. print(check_work_info.text ) 再次捕获文本

标签: python html selenium


【解决方案1】:

//*/span[contains(text(),'AUTOMATED')]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2021-10-10
    • 2016-11-26
    • 1970-01-01
    • 2021-09-14
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多