Search code examples
htmlxpathw3cw3c-validation

Select the link which text contains "Agent detail" using XPath


I have the following HTML code:

<div class="menu">
    <ul class="operation">
        <li class="menu_icon   selected" id="icon_oper-agents">
            <div id="title_menu" style="color:#FFF; padding-top:12px; display:none;">Monitoring</div>
                <ul id="subicon_oper-agents" class="submenu invisible" style="display: none;">
                    <li id="Views" class="has_submenu submenu_selected selected">
                        <div class=" SubNoLink submenu_text submenu_text_middle">Views</div>
                        <ul id="subViews" class="submenu2" style="display: none;">
                           <li class="sub_subMenu" style="">
                              <a href="index.php?sec=view&amp;sec2=operation/agentes/estado_agente">
                                 <div class="submenu_text submenu2_text_middle" title="">Agent detail</div>
                              </a>
                           </li>
                           <li class="sub_subMenu" style="">
                              <a href="index.php?sec=view&amp;sec2=extensions/realtime_graphs">
                                 <div class="submenu_text submenu2_text_last" title="">Real-time graphs</div>
                              </a>
                           </li>
                        </ul>
                    </li>
                </ul>
            </div>
        </li>
    </ul>
</div>

I need to get to the link "index.php?sec=view&sec2=operation/agentes/estado_agente" (whose text is Agent detail), using XPATH.

I already have this, but it is of no use: '//*[@id="subViews"]/li[4]/a'

I need this Xpath expression to create a python function that uses the selenium Webdriver client to accept "Agent detail" as parameter, and return the Web Element that represents it.

The key part of the previous code is:

<li class="sub_subMenu" style="">
  <a href="index.php?sec=view&amp;sec2=operation/agentes/estado_agente">
     <div class="submenu_text submenu2_text_middle" title="">Agent detail</div>
  </a>
</li>

Solution

  • If you want to get the link://ul[@id="subViews"]//a[contains(.,"Agent detail")]

    And if you want to get its href value: //ul[@id="subViews"]//a[contains(.,"Agent detail")]/@href