2

PHPUnitSausageにラップされた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特に、兄弟が.foowith 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 を使用する必要があります

4

3 に答える 3

1

css には兄弟セレクターがあり、役立つかもしれないセレクター~がいくつかcss4あります。

要件を正しく理解していれば、おそらくこれでうまくいくでしょう。

#mybutton > .foo ~ span.icon.clickable! > .baz 

これは chrome で動作するはずですが、css4 であるため、多くのブラウザーでは動作しない可能性があります。

ヒント:span.icon.clickable子を持つを選択します.baz

于 2013-08-02T21:23:02.303 に答える