【问题标题】:Codeception not detecting a field which appears in the sourceCodeception 未检测到源中出现的字段
【发布时间】:2015-03-08 03:29:28
【问题描述】:

我正在使用 codeception 为 laravel 应用程序编写验收测试。该应用程序是一个简单的 CRUD 应用程序,我的测试只是测试填写和提交应用程序的各种表格。我有一个创建新资源的工作测试,但是当我尝试编辑同一资源时,我收到以下错误:

这是创建资源的(工作)测试的样子:

$I = new AcceptanceTester($scenario);
$I->wantTo('Create Additional');
$I->login($I, 'username', 'password');

$I->click('Additional');
$I->seeInCurrentUrl('/admin/additional');
$I->click('Add Additional');
$I->seeInCurrentUrl('admin/additional/create');
$I->see('Add Additional');

 //Fill out form fields
$I->fillField('name', 'Test Name');
$I->fillField('anchor', 'Additional Services in Cusco');
$I->selectOption('publish', '1');

$I->click('Save');
$I->click('Additional');
$I->see('Additional Test Name');

$I->cleanup($I);

编辑资源的测试几乎相同:

$I = new AcceptanceTester($scenario);
$I->wantTo('Edit Additional');
$I->login($I, 'username', 'password');

$I->click('Additional');
$I->seeInCurrentUrl('/admin/additional');
$I->click('Edit');
$I->seeInCurrentUrl('admin/additional/edit/1');
$I->see('Editing');

// Fill out form fields
$I->fillField('name', 'Additional Name Edited');
$I->fillField('anchor', 'Edited anchor');
$I->selectOption('publish', '1');

$I->click('Save');
$I->click('Additional');
$I->see('Additional Name Edited');

$I->cleanup($I);

然而,当我运行编辑测试时,我收到以下错误:

1) Failed to edit additional in AdditionalEditCept
Couldn't fill field "name","Additional Name Edited":
InvalidArgumentException: Unreachable field "name"

这似乎很简单——“名称”字段不能在那里。但是当我查看源名称 =“名称”时,就像附加/创建视图一样。我应该指出,codeception 没有检测到该字段

$I->see('name'); 

要么。这是 AdditionalEditCept.fail.html 中相关代码的样子

<div class="form-group">
<label for="name">Additional Name:</label>
<input class="form-control" placeholder="" autocomplete="off" name="name" type="text" value="Edited Additional Services in Cusco" id="name">
</div>

看起来很简单; codeception 需要通过 CSS 选择器找到 html 元素,我给他们一个 CSS 选择器。这里会发生什么?

【问题讨论】:

  • 这有点晚了。您是否尝试将输入名称 name 更改为其他名称?

标签: laravel codeception


【解决方案1】:

这有点晚了,但如果我的 html 无效,我也会遇到类似的错误,例如

<div class="form-group">
    <label for="name">Additional Name:</label>
    <input name="name" type="text">
</div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2017-12-08
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多