【问题标题】:How to find this element from xPath如何从 xPath 中找到此元素
【发布时间】:2017-02-22 02:50:05
【问题描述】:

这是页面来源:

<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>

我想找到链接的文本“计算机”并用 selenium 点击它。在网上搜索了很多关于xPath的资源和教程后,仍然无法定位元素:/

设法得到一些接近的东西://*[@title=\"Manage computer systems for Company\"]//*[text()='Computers',这将找到一个包含这个元素的数组,但还没有。

提前致谢。

【问题讨论】:

  • 您可以附加一个[1] 以获得第一个匹配节点://*[@title="Manage computer systems for Company"]//*[text()='Computers'][1]

标签: selenium xpath


【解决方案1】:

尝试以下 xpath 中的任何一个。

说明:将div标签的class属性与text方法一起使用。

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

或

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

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

或

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

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

或

解释:使用a标签的href属性。并继续使用div 标签。

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

或

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

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

【讨论】:

    【解决方案2】:

    以下 xpath 可用于到达所需的控件:

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

    【讨论】:

      【解决方案3】:

      如果您需要它与&lt;a&gt; 和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']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-17
        • 2022-11-29
        • 2020-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多