web-dev-qa-db-fra.com

Cliquez sur un bouton avec XPath contenant l'identifiant partiel et le titre dans Selenium IDE

En utilisant Selenium IDE, j'essaie de cliquer sur un bouton dans un tableau sur une page Web en utilisant XPath avec un identifiant partiel et un titre de l'élément. Le XPath que j'utilise est:

xpath=//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')] 

et c'est le code html entier pour un exemple des boutons im essayant de cliquer:

<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>

Suis-je en train de construire mal? Ça ne fonctionne pas!

21
MikeH

Maintenant que vous avez fourni votre exemple HTML, nous pouvons voir que votre XPath est légèrement faux. Bien qu'il soit valide XPath, il est logiquement faux.

Tu as:

//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]

Ce qui se traduit par:

Obtenez-moi tous les éléments qui ont un ID qui contient ctl00_btnAircraftMapCell. À partir de ces éléments, obtenez tous les éléments enfants qui ont un title qui contient Select Seat.

Ce que vous voulez réellement est:

//a[contains(@id, 'ctl00_btnAircraftMapCell') and contains(@title, 'Select Seat')]

Ce qui se traduit par:

Obtenez-moi tous les éléments ancre qui ont les deux: un id qui contient ctl00_btnAircraftMapCell et un title qui contient Select Seat.

52
Arran