我正在自己学习硒。我在采访中有以下问题。使用 sibling 写一个 xpath

i am learning selenium by my own. I have the following question from an interview. write an xpath using sibling

我在一次采访中遇到了以下问题:编写一个 xpath 以通过航班 link 遍历访问酒店 link:

我在网络浏览器工具中突出显示了航班 link。但我不确定之后该怎么做

为此HTML:

<ul class="makeFlex font12">
   <li data-cy="menu_Flights" class="menu_Flights">
      <a href="https://www.makemytrip.com/flights/" class="active makeFlex hrtlCenter column
         ">
         <span class="chNavIcon appendBottom2 chSprite chFlights active"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Flights 
         </span>
      </a>
   </li>
   <li data-cy="menu_Hotels" class="menu_Hotels">
      <a href="https://www.makemytrip.com/hotels/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chHotels"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Hotels 
         </span>
      </a>
   </li>
   <li data-cy="menu_Homestays" class="menu_Homestays">
      <a href="https://www.makemytrip.com/homestays/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chHomestays"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Homestays 
         </span>
      </a>
   </li>
   <li data-cy="menu_Holidays" class="removeItemMargin menu_Holidays">
      <a href="https://www.makemytrip.com/holidays-india/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chHolidays"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Holiday Packages 
         </span>
      </a>
   </li>
   <li data-cy="menu_Trains" class="menu_Trains">
      <a href="https://www.makemytrip.com/railways/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chTrains"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Trains 
         </span>
      </a>
   </li>
   <li data-cy="menu_Buses" class="menu_Buses">
      <a href="https://www.makemytrip.com/bus-tickets/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chBuses"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Buses 
         </span>
      </a>
   </li>
   <li data-cy="menu_Cabs" class="menu_Cabs">
      <a href="https://www.makemytrip.com/cabs/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chCabs"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Cabs 
         </span>
      </a>
   </li>
   <li data-cy="menu_Visa" class="menu_Visa">
      <a href="https://www.makemytrip.com/visa/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chVisa"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Visa 
         </span>
      </a>
   </li>
   <li data-cy="menu_Charters" class="menu_Charters">
      <a href="https://www.makemytrip.com/charter-flights/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chCharterFlights"></span>
         <span class="reduceMenuSpacing chNavText darkGreyText">
            <!-- --> <!-- -->Charter Flights 
         </span>
      </a>
   </li>
   <li data-cy="menu_Activities" class="menu_Activities">
      <a href="https://www.makemytrip.com/activities/" class="makeFlex hrtlCenter column">
         <span class="chNavIcon appendBottom2 chSprite chActivities"></span>
         <span class="false chNavText darkGreyText">
            <!-- --> <!-- -->Activities 
         </span>
      </a>
   </li>
</ul>

一个简单的 xpath 通过遍历 flights link:

来访问 hotels link
//a[contains(@href,'/flights/')]/../following-sibling::li

解释:

//a[contains(@href,'/flights/')]

是针对 flights,然后通过使用 /.. 和寻找 following-siblingli[=19 来提升 DOM =]