Нажмите кнопку с XPath, содержащим частичный идентификатор и заголовок в Selenium IDE
Используя Selenium IDE, я пытаюсь щелкнуть кнопку в таблице на веб-странице с помощью XPath с частичным идентификатором и заголовком из этого элемента. XPath, который я использую, это:
xpath=//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]
и весь код html для примера кнопок im пытается щелкнуть:
<li id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow_ctl00_liAircraftMapCell" class="">
<a id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow_ctl00_btnAircraftMapCell" href="javascript:void(0)" seatnumber="20A" mapbindattribute="1124" title="Select Seat 20A" onclick="SeatClick(1124);"></a>
</li>
Я построил это неправильно? Это не работает!
Ответы
Ответ 1
Теперь, когда вы предоставили свой образец HTML, мы можем видеть, что ваш XPath немного ошибочен. Хотя он действительный XPath, он логически ошибочен.
У вас есть:
//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]
Это означает:
Получите все элементы с ID
, которые содержат ctl00_btnAircraftMapCell
. Из этих элементов получите любые дочерние элементы, которые имеют title
, который содержит Select Seat
.
На самом деле вы хотите:
//a[contains(@id, 'ctl00_btnAircraftMapCell') and contains(@title, 'Select Seat')]
Это означает:
Получите все элементы привязки, у которых оба: ID
, которые содержат ctl00_btnAircraftMapCell
и title
, которые содержат Select Seat
.