SeleniumRCを使用してGWTアプリをテストし、CSSセレクターを使用して要素を一致させようとしています。
次のHTMLで有効になっているボタンの数を数えたいのですが。
ボタンは<td>
とclass="x-panel-btn-td "
の下にある場合は有効になり、<td>
とclass="x-panel-btn-td x-hide-offsets"
の下にある場合は無効になります。
したがって、基本的には、<td>
クラスを使用して、すべてのx-panel-btn-td
sの下にあるボタンの数を取得します。
<table cellspacing="0">
<tbody>
<tr>
<td id="ext-gen3504" class="x-panel-btn-td ">
<em unselectable="on">
<button id="ext-gen3506" class="x-btn-text" type="button">OK</button>
</em>
</td>
<td id="ext-gen3512" class="x-panel-btn-td x-hide-offsets">
<em unselectable="on">
<button id="ext-gen3506" class="x-btn-text" type="button">Yes</button>
</em>
</td>
<td id="ext-gen3520" class="x-panel-btn-td">
<em unselectable="on">
<button id="ext-gen3506" class="x-btn-text" type="button">No</button>
</em>
</td>
<td id="ext-gen3528" class="x-panel-btn-td x-hide-offsets">
<em unselectable="on">
<button id="ext-gen3506" class="x-btn-text" type="button">Cancel</button>
</em>
</td>
</tr>
</tbody>
</table>
私が知る限り、CSSセレクターを使用してこれを行うことはできませんが、SeleniumにはXPathでカウントするコマンドがあります。次のコマンドは、2つの無効なボタンがあることを確認します。
verifyXpathCount | //td[contains(@class, 'x-hide-offsets')]//button | 2
Selenium RC(Java)では、これは次のようになります。
assertEquals(Selenium.getXpathCount("//td[contains(@class, 'x-hide-offsets')]//button"), 2);
これも Selenium Webdriver API に実装されています(追加のJavaScriptマジックは必要ありません)== Selenium RCがWebdriverに置き換えられたとしても、Googleはこの質問へのトップリンクとしてリンクしているので、うまくいけば誰かを救います時間。
例Javaコード:
int locatorElementSize = driver.findElements(By.cssSelector("yourCSSLocator")).size();
Seleniumの新しいバージョンでは、GetCSSCount(string locator)という関数があります。この質問の更新が役立つと思った
これは比較的単純なはずです。複数の方法で実行できますが、DefaultSeleniumでgetEval(...)
を使用することをお勧めします。
次のようなJavaScriptを記述します。
一般に、getEval(...)
は、最後に実行されたステートメントの値を返します。そのため、カウントがわかります。
SeleniumはFirefoxの一部であり、後者はSelectors APIをサポートしているため、次のようなテストを使用してCSSロケーターの一致のカウントを簡略化できます。
verifyEval | window.document.querySelectorAll("your#css > selector.here").length | 4
この例では、カウントはもちろん4であることが検証されています。
これは、セレクターAPI/window.document.querySelectorAllに関する投稿と同様に、JavaScriptを使用した別のソリューションです。
http://blog.eviltester.com/2010/03/a-simple-getcsscount-helper-method-for-use-with-Selenium-rc.html