我试图使用SeleniumRC测试我的GWT应用程序,并尝试使用CSS选择器匹配元素。
我想计算以下HTML中启用按钮的数量。
如果某个按钮位于< td>之下,则启用按钮class =“x-panel-btn-td”,如果它位于< td>下,则禁用class =“x-panel-btn-td x-hide-offsets”。
所以基本上,我想用x-panel-btn-td类检索所有< td>下的按钮数量。
<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。以下命令将验证有两个禁用按钮:
verifyXpathCount | //td[contains(@class,'x-hide-offsets')]//button | 2
在Selenium RC(Java)中,这看起来更像
assertEquals(selenium.getXpathCount("//td[contains(@class,'x-hide-offsets')]//button"),2);