【发布时间】: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 ) 再次捕获文本