如何根据跨度内的文本获取跨度的跟随元素

时间:2019-04-04 09:54:50

标签: html selenium html-lists

如何使用跨度内的文本识别跨度的后续元素。 在下面的代码中,我需要使用其文本来标识第一个跨度,以在<li>中找到以下元素。我可以使用其class属性来识别范围,但是无法使用contains(text(), 'System stopped operation')来识别范围标签。我的想法是使用其类确定第一个跨度,然后找到以下<li>

<span class="text-danger">
      &nbsp;
      <img src="images/crit.gif" width="15" height="15" border="0" align="absbottom" alt="Critical Alarm" title="Critical Alarm">
      &nbsp;System stopped operation
    </span>
    <ul>
      <li>
        The system is not in operation.</li>
    </ul>
    <span class="text-warning">
      &nbsp;
      <img src="images/warn.gif" width="15" height="15" border="0" 
    align="absbottom" alt="Warning Alarm" title="Warning Alarm">
    &nbsp;System restarted
    </span>
    <ul>
      <li>
        System has been restarted.</li>
    </ul>

2 个答案:

答案 0 :(得分:0)

要针对各个<li>标签中的文本标识<span>元素,可以使用以下基于 xpath 的解决方案:

  • 要识别<li>,其文本为系统未运行

    //span[contains(., 'System stopped operation')]//following::ul[1]/li
    
  • 要标识文本为{strong>系统已重启的<li>

    //span[contains(., 'System restarted')]//following::ul[1]/li
    

答案 1 :(得分:-1)

很难从问题中看出是要在Default下寻找SPAN还是LI,因此两者都是。

您可以使用下面的CSS选择器找到SPAN

SPAN

或下面的CSS选择器,在所需的span.text-danger 下找到LI

SPAN