Я хочу построить Xpath для раскрывающегося поля даты отъезда
https://www.southwest.com/air/booking/index.html?int=HOME-BOOKING-WIDGET-ADVANCED-AIR
Я пробовал так много комбинаций, но это не работает.
пример -
//input[@id='departureDate']/span[@class='swa-icon--icon']
//span[@class='swa-icon--icon']
<div class = "flyout-trigger date-input"><div class = "input input_icon input_left input_secondary"><input type = "text" aria-label = "Depart Date in mm/dd/yyyy format, valid dates from Jun 12 2019 to Jan 5 2020. To use a date picker press the down arrow." aria-owns = "calendar-14" autocapitalize = "none" autocomplete = "off" autocorrect = "off" id = "departureDate" spellcheck = "false" aria-required = "true" class = "input--text"><div class = "input--icon-separator"><span class = "swa-icon input--icon swa-icon_calendar" icon = "swa-icon_calendar" size = "18" role = "presentation" style = "font-size: 18px;"><span role = "presentation" class = "swa-icon--icon"></span></span></div></div></div>
\
Поле DEPART DATE, которое запускает раскрывающийся список, имеет идентификатор departureDate
. Это то, о чем вы говорите? Скриншот той части пользовательского интерфейса с кружком вокруг элемента, на который вы ссылаетесь, будет иметь большое значение.
Вот xpath, который вы ищете.
//span[normalize-space(.)='Return date']/following-sibling::div//span[@class='swa-icon--icon']
Добавлен скриншот, который даст больше ясности в том, как выводится xpath.
Спасибо за ответ. ценю твою помощь.
Если вы считаете, что проблема решена, пожалуйста, примите ответ, нажав на галочку под кнопкой голосования против. И не стесняйтесь голосовать.
Самый простой способ — придерживаться значения aria-label
атрибут, вы можете использовать XPath contains()
функция, чтобы найти элемент на основе частичного текста вышеупомянутого атрибута aria-label
, например:
//input[contains(@aria-label,'Depart Date')]
Демо:
Больше информации:
У большинства этих полей есть идентификаторы, так почему бы вам просто не добавить один или использовать идентификатор '//*[@id = "originationAirportCode"]'. Я предполагаю, что это ваш сайт, или вы подтвердили им, что можете автоматизировать задачу бронирования? mvce вместо ссылки пожалуйста.