web-dev-qa-db-ja.com

Seleniumの部分的なIDとタイトルを含むXPathのボタンをクリックしますIDE

Selenium IDEを使用して、部分的なIDと要素のタイトルを持つXPathを使用して、Webページのテーブル内のボタンをクリックしようとしています。私が使用しているXPathは次のとおりです。

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

それはクリックしようとしているボタンの例のHTMLコード全体です:

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

これを間違って構築していますか?動いていない!

21
MikeH

HTMLサンプルを提供したので、XPathが少し間違っていることがわかります。有効なXPathですが、論理的には間違っています。

あなたが持っている:

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

次のように変換されます:

ctl00_btnAircraftMapCellを含むIDを持つ要素allを取得します。これらの要素のうち、Select Seatを含むtitleを持つany子要素を取得します。

あなたが実際に欲しいものは:

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

次のように変換されます:

Get meallthe anchor elements that both:an id that contains ctl00_btnAircraftMapCellおよびSelect Seatを含むtitle

52
Arran