【问题标题】:Locators for elements with same attributes具有相同属性的元素的定位器
【发布时间】:2020-05-03 13:28:06
【问题描述】:

我很难为具有相同属性的元素编写 xpath。绝对 xpath 不起作用,因为唯一的区别元素 div[#] 不断变化。任何建议将不胜感激。
这是第一个元素的 DOM

<div class="logoSelect' style=z-index: 1; top: 1613px; left: 292.75px; width: auto; display: block;">
 <ul>
  <li class=logoSelectOption id ="N" onmouseover="jQuery('#worktitle').activate(this);" 
   onmouseout="jQuery('#worktitle').deactivate();" 
   onmousedown="jQuery('#worktitle').selectItem(this);" 
   logo-colour="#FFF">No
  </li>
 </ul>
</div>

这是第二个元素的 DOM:

<div class="logoSelect' style=style="z-index: 1; top: 1716px; left: 292.75px; width: auto; display:       
block;">
 <ul>
  <li class=logoSelectOption id ="N" onmouseover="jQuery('#agendatitle').activate(this);" 
   onmouseout="jQuery('#agendatitle').deactivate();" 
   onmousedown="jQuery('#agendatitle').selectItem(this);" logo-colour="#FFF">No
  </li>
 </ul>
</div>

【问题讨论】:

  • 您的问题是什么?没有正确获取您想要获取第一个元素或最后一个元素?
  • 我的问题是如何为这两个元素中的每一个编写一个 xpath 来区分它们。

标签: selenium


【解决方案1】:

您可以尝试这些非常简单的 xpath 来定位这两个元素

对于第一个元素:

(//li[@id='N'])[1]

对于第二个元素:

(//li[@id='N'])[2]

【讨论】:

    【解决方案2】:

    尝试按照 XPATH 获取元素。

    第一个元素

      //li[@class='logoSelectOption' and contains(@onmouseover,'worktitle') and contains(.,'No')]
    

    第二个元素

      //li[@class='logoSelectOption' and contains(@onmouseover,'agendatitle') and contains(.,'No')]  
    

    或跟随 CSS 选择器。

    li.logoSelectOption[onmouseover*='worktitle']
    li.logoSelectOption[onmouseover*='agendatitle']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多