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_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>
Suis-je en train de construire mal? Ça ne fonctionne pas!
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
.