在 Laravel 中的测试期间取消勾选复选框
Untick a checkbox during testing in Laravel
做这样的事情:
$this->visit('/path')
->check('field')
->push('Save');
无论初始状态如何,都将提交勾选 field
复选框的表单。
如何在表单响应中预先提交时提交未勾选复选框的相同表单? Laravel 的爬虫似乎没有提供执行此操作的方法。
我试过底层 Symfony\Component\DomCrawler\Form
:
$visit = $this->visit('/path');
$form = $visit->getForm('Save');
$form['field'] = 0;
但这会触发以下错误:
Input "unique_parcel" cannot take "0" as a value (possible values: 1).
如果您使用的是 laravel/framework
软件包的 v5.1.10+,那么您可以使用 uncheck()
方法。
$this->visit('/path')
->uncheck('field')
->push('Save');
否则,您可以使用untick()
方法。
$form = $visit->getForm('Save');
$form['field']->untick();
做这样的事情:
$this->visit('/path')
->check('field')
->push('Save');
无论初始状态如何,都将提交勾选 field
复选框的表单。
如何在表单响应中预先提交时提交未勾选复选框的相同表单? Laravel 的爬虫似乎没有提供执行此操作的方法。
我试过底层 Symfony\Component\DomCrawler\Form
:
$visit = $this->visit('/path');
$form = $visit->getForm('Save');
$form['field'] = 0;
但这会触发以下错误:
Input "unique_parcel" cannot take "0" as a value (possible values: 1).
如果您使用的是 laravel/framework
软件包的 v5.1.10+,那么您可以使用 uncheck()
方法。
$this->visit('/path')
->uncheck('field')
->push('Save');
否则,您可以使用untick()
方法。
$form = $visit->getForm('Save');
$form['field']->untick();