我正在自己学习硒。我在采访中有以下问题。使用 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-sibling
即 li
[=19 来提升 DOM =]
我在一次采访中遇到了以下问题:编写一个 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-sibling
即 li
[=19 来提升 DOM =]