【问题标题】:How to make fillField() work for functional tests Codeception + Laravel 5.2如何使 fillField() 用于功能测试 Codeception + Laravel 5.2
【发布时间】:2016-04-15 12:39:17
【问题描述】:

我正在编写一些功能测试来测试我的应用程序的登录系统。我尝试了以下使用fillField() 的方法,但无法让它对我有用。

$I->fillField(['id' => 'loginEmail'], 'sample@mail.com');

$I->fillField("//input[@id='loginEmail']", 'sample@mail.com');

之后,当我尝试运行 seeInFormFields() 方法时,它给了我以下错误:

 Step  I see in form fields "form[name=loginForm]",{"email":"sample@mail.com","password":123456}
 Fail  Failed asserting that `sample@mail.com` is in input's value: array (
  0 => '',
)
Failed asserting that an array contains 'sample@mail.com'.

需要注意的是,我在同一页面上的注册表单具有相同的name,这就是我必须使用ID 的原因。

任何帮助或建议将不胜感激。

使用 HTML 代码更新

下面是我的 HTML 表单代码

<form name="loginForm" class="" method="POST" action="https://domain/en-us/checkout/login">
        <div class="col-sm-12 wrapper generic-form collapse-form" ng-controller="mobileController">
            <fieldset>
                <legend
                    class="legend-login">
                    I have an account
                </legend>
                <div class="collapse-panel">
                    <div class="col-xs-12 control-group">
                        <div class="row form-group" ng-class="{ 'has-error' : loginForm.email.$error.required && submitted }">
                            <div class="col-sm-4 col-xs-12 text-right">
                                <label for="email">E-Mail</label>
                            </div>
                            <div class="col-sm-8 col-xs-12">
                                <input
                                        name="email"
                                        type="email" class="form-control"
                                        id="loginEmail"
                                        required>
                                <small class="ico-buttons ico-error red">
                                    Mandatory
                                </small>
                            </div>
                        </div>
                    </div>
                    <div class="col-xs-12">
                        <div class="row form-group" ng-class="{ 'has-error' : loginForm.password.$error.required && submitted }">
                            <div class="col-sm-4 col-xs-12 text-right">
                                <label for="password">Password</label>
                            </div>
                            <div class="col-sm-8 col-xs-12">
                                <input  name="password"
                                        type="password"
                                        class="form-control"
                                        id="password"
                                        required>
                                <small class="ico-buttons ico-error red">
                                    Mandatory
                                </small>
                            </div>
                        </div>
                    </div>
                    <div class="col-xs-12">
                        <div class="row form-group">
                            <div class="col-xs-12 col-sm-8 col-sm-offset-4">
                                <input type="button" value="Login" name="submitWelcomeLoginForm">
                            </div>
                        </div>
                                <br>
                                <a href='https://domain.com/' class='pull-right'>Forgot Password?</a>
                    </div>
                </div>
            </fieldset>
        </div>
        <div class="clearfix"></div>
    </form>

【问题讨论】:

  • 您可以将表单的 HTML 添加到问题中吗?
  • @Naktibalda 你看我的 html 代码了吗??

标签: php laravel-5.2 functional-testing codeception php-5.6


【解决方案1】:

第一个参数是字段的字符串名称

$I->fillField('email', 'sample@mail.com');

你可以在这里找到很多测试脚本:https://github.com/satrun77/tinyissue/blob/master/tests/functional

使用的测试脚本fillField https://github.com/satrun77/tinyissue/blob/master/tests/functional/CrudIssueCest.php

【讨论】:

【解决方案2】:

您的问题不是 fillField 不起作用,
就是 seeInFormFields 看不到填充的值,它只看到页面原始 HTML 中存在的值。

【讨论】:

  • 不要使用seeInFormFields,提交表单有问题吗?
猜你喜欢
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2013-05-15
  • 2016-08-10
  • 2014-08-17
  • 1970-01-01
相关资源
最近更新 更多