2

基本的に、同じ名前、プロパティ、および属性を共有する要素を選択するために使用できる構文を探しています。

インデックス経由でそれらを選択することを考えていました。(残念ながら、動的要素であるため、Xpath は機能しません。)

したがって、要素Addが2回表示されるページがあり、両方とも異なる値を追加/スローします。ただし、どちらも同じ ID、属性、および名前を持っています。私のテストでは、最初のものを選択しAdd、次に他のものを選択する必要があります。

${add attributes row}          //*[@data-bind="click: function() { 
$parents[1].addItem($parents[1]
    .attributes()[$parentContext.$index()]) }", index=1]


${add attributes row_2}     //*[@data-bind="click: function() { 
$parents[1].addItem($parents[1]
    .attributes()[$parentContext.$index()]) }", index=2]

インデックスでそれらを選択する方法はありますか?

4

1 に答える 1

2

両方を選択する XPath が見つかった場合は、XPath を括弧で囲むことにより、XPath 全体に述語を適用できます。たとえば、 //a は DOM 全体のすべてのアンカーを選択します。(//a)[4] DOM で見つかった 4 番目のアンカーを選択します。last 関数と position 関数を使用して、最後から 2 番目のアンカーなどの相対インデックスを選択することもできます (//a)[last()-1]

最初にこのようなロケーターを試してください:

xpath=(//*[@data-bind="click: function() {$parents[1].addItem($parents[1].attributes()[$parentContext.$index()]) }"])[1]

2 つ目は、次のようなロケーターを試してください。

xpath=(//*[@data-bind="click: function() {$parents[1].addItem($parents[1].attributes()[$parentContext.$index()]) }"])[2]

この関連する質問を参照してください

于 2013-10-01T20:15:58.290 に答える