PHPUnitとSausageにラップされたSelenium WebDriverを使用して、次のようにレイアウトされたテーブルの特定の行にあるボタンのクリックをテストしています。
<tr id="dynamically generated 1">
<td class="foo">
<div class="bar"></div>
</td>
<td class = "mybutton">
<span class = "icon clickable"></span>
</td>
</tr>
<tr id="dynamically generated 2">
<td class="foo">
<div class="baz"></div>
</td>
<td class = "mybutton">
<span class = "icon clickable"></span>
</td>
</tr>
#mybutton > span.icon.clickable
特に、兄弟が.foo
with childである特定の要素をクリックしたいと思います.baz
。同じテーブル内の他の行には elementがあり、それらの行の ID は動的に生成されるため、「兄弟が.foo
子を持つ」要件は、現在正しい要素を特定できる唯一の方法です。.baz
#mybutton > span.icon.clickable
現在、私は XPath を使用していますが、ご想像のとおり、FF
とのパフォーマンスIE
はひどいものです。tr#id
要素から値を取得する方法はありtr#id div.bar
ますか? これを取得できれば、id を使用して CSS を使用し、探している要素を見つけることができます。私は PHP を使用していますが、任意の言語でのソリューションが役立ちます。
別の方法として、より単純な CSS3 ソリューションを使用することもできますが、かなりの時間をかけて読んだ結果、標準の CSS3 セレクターを使用することは、このケースでは選択肢にならないという結論に達しました。何か足りないものがある場合に備えて、これに対する CSS3 ソリューションはありますか? CSS4 ソリューションがあることは知っていますが、ブラウザーを完全にサポートする必要があるため、テストしているすべてのブラウザーが CSS4 をサポートするまでは、CSS3 に依存する必要があります。
前もって感謝します。
編集: CSS4 のクロスブラウザー サポートが改善されるまでは、CSS3 を使用する必要があります