2

我正在将 Behat 与 Selenium2 一起使用,我想编写一个测试来检查一个字段是否被聚焦。这是我的实验:

/**
 * @Then /^I could see username focused$/
 */
public function iCouldSeeUsernameFocused()
{
    $this->getSession()->wait(1000, "$('#username').is(':focus') == true");
}

这总是绿色的。还有这个:

/**
 * @Then /^I could see username focused$/
 */
public function iCouldSeeUsernameFocused()
{
    $this->getSession()->wait(1000, "false");
}

我可以用 Behat 测试一个 textField 是否有焦点吗?

4

1 回答 1

2

您的步骤不会引发异常,因此它确实总是会成功。

此外,在这里等待不是正确的选择,因为它所做的只是等待。它没有有意义的返回值,你可以在这里看到:http: //mink.behat.org/api/behat/mink/session.html#wait()

相反,我会使用 phpunit 断言和会话的评估脚本方法:

assertTrue($this->getSession()->evaluateScript('// your jQuery here'));

确保包含 phpunit 的断言函数,如下所述:http: //docs.behat.org/guides/2.definitions.html#failed-steps

于 2013-06-20T20:40:15.173 回答