我怎么能算我的CSS选择器匹配的元素的数量?(How can I count the number

2019-08-18 09:32发布

我试图用SeleniumRC来测试我的GWT应用程序,我试图符合使用CSS选择器的元素。

我想算在以下HTML启用按钮的数量。

如果它是下A按钮被使能<td>class="x-panel-btn-td "和残疾人如果它是下一个<td>class="x-panel-btn-td x-hide-offsets"

所以基本上,我想要检索按钮下的所有号码<td> s的类x-panel-btn-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>

Answer 1:

据我所知,你不能做到这一点使用CSS选择器,但有一个命令硒与XPath计数。 以下命令将验证有两种被禁止的按钮:

verifyXpathCount | //td[contains(@class, 'x-hide-offsets')]//button | 2

硒RC(JAVA)这会看起来更像

assertEquals(selenium.getXpathCount("//td[contains(@class, 'x-hide-offsets')]//button"), 2);


Answer 2:

现在,这也是实现(没有所需的任何额外的Javascript魔法)中硒的webdriver API ,因为谷歌仍然链接到这个问题作为一个顶级因此,即使硒RC已取代webdriver的,希望这样可以节省时间的人。

例如Java代码:

int locatorElementSize = driver.findElements(By.cssSelector("yourCSSLocator")).size();


Answer 3:

硒的新版本,有一个函数Ge​​tCSSCount(字符串定位器)。 只是想更新这个问题将是有益的



Answer 4:

这应该是比较简单的。 你可以这样做多种方式,但我会建议使用getEval(...)在DefaultSelenium。

写一些JavaScript代码:

  1. 按ID获取的所有元素:EXT-gen3506
  2. 通过所有元素,并检查通过迭代来看看它的启用
  3. 如果它的启用,递增计数
  4. “回归”的计数。

一般来说, getEval(...)将返回跑了......所以,应该给你计数的最后一条语句的值。



Answer 5:

由于硒是火狐的一部分,后者被支承选择器API一个可以简化计数使用这样的试验中的CSS定位器的匹配:

verifyEval | window.document.querySelectorAll("your#css > selector.here").length | 4

在该示例中的计数被验证为4,当然。



Answer 6:

这里是另一种解决方案,使用JavaScript,类似于张贴关于选择API / window.document.querySelectorAll:

http://blog.eviltester.com/2010/03/a-simple-getcsscount-helper-method-for-use-with-selenium-rc.html



文章来源: How can I count the number of elements that match my CSS selector?