2013-04-10 12 views
14

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

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

とボタンの例については、全体のhtmlコードのthatsクリックしようとしているイム:

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

は私が間違ってこれを構築するだろうか?動いていない!

+0

は、そのボタンのHTMLを共有します – Amey

+0

ここでコードを書式設定し、可能な限り読みやすいように質問を書くことには十分注意してください。読めるQであることについてのおかげで、マイク – halfer

+0

MikeH

答えて

35

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

は、あなたが持っている:に変換

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

ctl00_btnAircraftMapCellが含まれていID持つすべての要素くれを取得します。これらの要素のうち、titleの子要素がのの子要素を取得します。

あなたが実際にがしたいことは次のとおりです。

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

に換算さ:

両方を持っているすべてのアンカー要素私を取得:idctl00_btnAircraftMapCellあり、aが含まれていますにはSelect Seatが含まれています。

+1

が働いていることです。 – MikeH

+1

それは非常に説明された答えです。 – tpow

+2

これは、おそらくスタックオーバーフローに関する最良の解答です!私はあなたがxpath式でやったように、 "と"を使うことができないことを知りませんでした。 – dmeehan

関連する問題