Laravel Dusk - 调用数组的成员函数 click()
Laravel Dusk - Call to a member function click() on array
我有问题。当我尝试 运行 我的 dusk 测试时它输出这个错误:
1) Tests\Browser\NewPostTest::test_new_post
Error: Call to a member function click() on array
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:32
D:\xampp\htdocs\laravel_blog\vendor\laravel\dusk\src\Concerns\ProvidesBrowser.php:67
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:34
我的测试方法是这样的:
public function test_new_post()
{
$this->browse(function (Browser $browser) {
$faker = Faker::create();
$title = $faker->sentence();
$slug = str_replace(' ', '-', $title);
$browser->loginAs(User::find(2))
->visit('/posts/create')
->assertSee('Create New Post')
->type('title', $title)
->type('slug', $slug)
->type('body', $faker->paragraphs(5, true))
->select('category_id')
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
->click('input[type=submit]#submit')
->assertPathIs('/posts');
});
}
如您所见,我正在为我的标签使用 select2。谁能告诉我我做错了什么?
您不能在 script()
之后使用链接,因为它 returns 是一个数组而不是 $this
:
$browser->[...]
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
$browser->click('input[type=submit]#submit')
->assertPathIs('/posts');
select2选择我有另一种方案。
->press('.select2-container')
->waitFor('.select2-container--open', 1)
->click('ul.select2-results__options li:nth-child(2)')
->pause(1000)
我有问题。当我尝试 运行 我的 dusk 测试时它输出这个错误:
1) Tests\Browser\NewPostTest::test_new_post
Error: Call to a member function click() on array
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:32
D:\xampp\htdocs\laravel_blog\vendor\laravel\dusk\src\Concerns\ProvidesBrowser.php:67
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:34
我的测试方法是这样的:
public function test_new_post()
{
$this->browse(function (Browser $browser) {
$faker = Faker::create();
$title = $faker->sentence();
$slug = str_replace(' ', '-', $title);
$browser->loginAs(User::find(2))
->visit('/posts/create')
->assertSee('Create New Post')
->type('title', $title)
->type('slug', $slug)
->type('body', $faker->paragraphs(5, true))
->select('category_id')
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
->click('input[type=submit]#submit')
->assertPathIs('/posts');
});
}
如您所见,我正在为我的标签使用 select2。谁能告诉我我做错了什么?
您不能在 script()
之后使用链接,因为它 returns 是一个数组而不是 $this
:
$browser->[...]
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
$browser->click('input[type=submit]#submit')
->assertPathIs('/posts');
select2选择我有另一种方案。
->press('.select2-container')
->waitFor('.select2-container--open', 1)
->click('ul.select2-results__options li:nth-child(2)')
->pause(1000)