Нажмите кнопку с 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_liAircraftMap‌​Cell" class=""> 
    <a id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow‌​_ctl00_btnAircraftMa‌​pCell" 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.