如何从xPath中找到此元素

时间:2017-02-22 02:50:05

标签: selenium xpath

以下是页面来源:

<div id="accounts-menu" class="yui3-menu menu yui3-menu-horizontal menu-horizontal yui3-splitbuttonnav " role="menu">
<div class="yui3-menu-content" role="presentation" id="yui_3_18_1_1_1487717925042_903">
  <ul class="accounts-menu first-of-type" role="presentation" id="yui_3_18_1_1_1487717925042_902">


  <li class=" account-company-item-menu yui3-menuitem" role="presentation">

    <a class="yui3-menuitem-content" href="/account/company" title="" role="menuitem" tabindex="-1" id="yui_3_18_1_1_1487717925042_750">
      <div class="menu-label">Company</div>
    </a>
  </li>


  <li class="selected account-systems-management-menu yui3-menuitem account-selected" role="presentation" id="yui_3_18_1_1_1487717925042_901">

    <a class="yui3-menuitem-content" href="/account/company/computers" title="Manage computer systems for Company" role="menuitem" tabindex="0" id="yui_3_18_1_1_1487717925042_752">
      <div class="menu-label">Computers</div>
    </a>
  </li>



  <li class="account-support-menu yui3-menuitem" role="presentation" id="yui_3_18_1_1_1487717925042_922">

    <a class="yui3-menuitem-content" href="http://support.canonical.com" title="Get support for Company" role="menuitem" tabindex="-1" id="yui_3_18_1_1_1487717925042_754">
      <div class="menu-label">Support</div>
    </a>
  </li>



  </ul>
</div>

基本上这一个:

          <div class="menu-label">Computers</div>

我想找到链接的文本“Computers”,然后点击它与selenium。在挖掘了很多关于xPath online的资源和教程后,仍无法找到元素:/

管理得到某些东西://*[@title=\"Manage computer systems for Company\"]//*[text()='Computers',这会发现一个包含这个元素的数组,但还没有。

提前致谢。

3 个答案:

答案 0 :(得分:2)

尝试以下任何一种xpath。

说明:使用class标记的div属性以及text方法。

//div[@class='menu-label'][contains(text(), 'Computers')]

OR

说明:使用text标记的div方法。

//div[contains(text(), 'Computers')]

OR

说明:使用title标记的a属性。并继续div标记。

//a[@title='Manage computer systems for Company']/div

OR

说明:使用href标记的a属性。并继续div标记。

//a[@href='/account/company/computers']/div

OR

说明:使用id标记的a属性。并继续div标记。

//a[@id='yui_3_18_1_1_1487717925042_752']/div

答案 1 :(得分:0)

如果您需要将<a>title="Get support for Company"相关联,那么它应该是这样的:

//a[@title="Manage computer systems for Company"]/div[@class='menu-label']

如果没有,最好通过id查询:

//li[@id="yui_3_18_1_1_1487717925042_901"]//div[@class='menu-label']

答案 2 :(得分:0)

可以使用 xpath 来达到所需的控件:

//a[@title='Manage computer systems for Company']/div[text()='Computers']