Использование Selenium для определения того, установлены ли флажки с определенным классом - PullRequest
1 голос
/ 30 сентября 2010

Я использую 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)));
}

К сожалению, не похоже, чтобы я мог использовать квадратные скобки дважды для одного и того же тега, но мне нужно убедиться, что установлены все флажки, имеющие класс «required».

Есть предложения?

Ответы [ 3 ]

1 голос
/ 30 сентября 2010

Если я не понимаю, у вас не должно быть проблем с использованием квадратных скобок дважды.Я смог заставить ваш код работать без проблем, используя 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?

1 голос
/ 30 сентября 2010

Я не знаю о Selenium, но DOMXPath->evaluate понял бы этот синтаксис и вернул бы число с плавающей запятой (не 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);
0 голосов
/ 28 июня 2017

$ checkbox3 = $ this-> byClassName ('обязательно');
$ This-> assertTrue ($ checkbox3-> выбран ());

...