使用Selenium确定是否选中具有特定类的复选框

时间:2010-09-29 23:24:27

标签: php phpunit selenium-rc xpath

我正在使用Selenium和PHPUnit来判断是否检查了一堆具有特定类的复选框,并且我遇到了一些麻烦。

我的代码:

$count = $this->getXpathCount('//form//input[@type="checkbox" and @class="required"]');
for ($i = 1; $i <= $count; $i++) {
    $this->assertTrue($this->isChecked(sprintf('xpath=//form//input[@type="checkbox" and @class="required"][%d]', $i)));
}

不幸的是,似乎我不能在同一个标​​签上使用方括号两次,但我确实需要确保检查所有具有“必需”类的复选框。

任何建议?

3 个答案:

答案 0 :(得分:1)

我不知道Selenium,但DOMXPath->evaluate会理解这种语法&amp;返回一个浮点数(不是int,但是嘿),也许它适合你:

count(//form//input[@type="checkbox" and @class="required" and not(@checked)])

或许也很简单:

$this->assertTrue($this->getXpathCount('//form//input[@type="checkbox" and @class="required" and not(@checked)]')==0);

答案 1 :(得分:1)

除非我误解,否则使用方括号两次不应该有任何问题。我能够使用PHPUnit和Selenium来解决下面的html问题,使代码无故障运行:

<html>
  <head>
    <title>Check Boxes</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <form action="self" method="post">
        <div>
            <input type="checkbox" class="required"/>
            <br />
            <input type="checkbox" class="required"/>
            <br />
            <input type="checkbox" class="required"/>
            <br />
            <input type="submit" value="Submit" />
            <br />
        </div>
    </form>
  </body>
</html>

您是否正在运行最新版本的PHPUnit和Selenium-rc?

答案 2 :(得分:-1)

$ checkbox3 = $ this-&gt; byClassName(&#39; required&#39;);

  $这 - &GT; assertTrue($ checkbox3-&GT;选择());