如何创建匹配元素中存在的两个条件的 xpath?

How to create xpath that matches both conditions present in an element?

描述: 我需要创建一个与 div class = 'item_inside'

中存在的条件相匹配的 Xpath

说明: 假设我的网页上有两个 item_inside class。 一个 class 在 aria-label 中有大篮子文本,另一个 class 在 aria-label 标签中有小篮子。

//*[@class = 'item_inside']//*[@class = 'food_list']

如果我在开发人员工具中编写上面的 xpath,它会显示两个结果,我想做的就是以某种方式在 Xpath 中添加 aria-label = 'BigBasket' ,以便它给我一个独特的结果。

<div class="item_inside">
 <div class="one_line">

    <div class="support_text">
        <div class="detail_info">
            <div class="headline_title_content headline_title_2" tabindex="0" aria-label="Big Basket">
            </div>
       </div>
    </div>
  </div>

  <ul _cid="123456" class="food_list">
  </ul>
</div>

这是我试过的 xpath:

//*[@class = 'item_inside']//*[@class = 'one_line']//*[@class = 'headline_title_content headline_title_2' and @aria-label = 'Big Basket']//*[@class = 'item_inside' and @class = 'food_list']

我尝试过的事情:

我尝试创建一个包含 and、or 的 Xpath,但我认为 xpath 的格式不正确,所以我没有得到输出。

我想你需要这个作为第一个过滤器:

//*[@class = 'item_inside'][*[@class = 'food_list']]

所以现在你有每个元素都带有@class=item_inside并且谁有一个元素带有class=food_list

接下来您要过滤那个内部 div ,所以我们只需添加另一个谓词

//*[@class = 'item_inside'][*[@class = 'food_list']][*[@class = 'one_line']//*[@class = 'headline_title_content headline_title_2' and @aria-label = 'Big Basket']]

现在您已经选择了符合这些条件的所有 //*[@class = 'item_inside']