我试图从我的html中获取id,以便在单元测试laravel中使用click
方法。
这是我使用刀片的html:
<td>
<form class="form-horizontal" method="post" action="{{ action('AdminWeb\UserController@toggleActivateStatus', $user->id) }}">
{{ csrf_field() }}
<button id="user{{$user->id}}" class="btn btn-sm {{ $user->status == 'active' ? 'btn-danger' : 'btn-success' }}" type="submit">{{ $user->status == 'active' ? 'Deactivate' : 'Activate' }}</button>
</form>
</td>
请注意,我使用<button>
id="user{{$user->id}}"
中生成了id元素
所以我试图在我的测试类中获取例如id=user3
的id,如下所示:
public function testActivateUser()
{
$this->visit('users')
->click('user3')
->seePageis('users');
}
但我无法得到它:
UserControllerTest::testActivateUser
InvalidArgumentException: Could not find a link with a body, name, or ID attribute of [user3].
任何帮助?感谢。
答案 0 :(得分:2)
Click方法不适用于按钮,例外情况说,它只适用于链接。您可以尝试以下方法:
...
<form>
<button name="activate-user-{{ $user->id }}"></button>
</form>
...
并且在你的测试中
/**
* A basic user activation test.
*
* @return void
*/
public function testActivateUser()
{
$this->visit('/users')->press('activate-user-1');
}