【问题标题】:Laravel Dusk - Call to a member function click() on arrayLaravel Dusk - 调用数组上的成员函数 click()
【发布时间】:2019-01-18 21:16:18
【问题描述】:

我有问题。当我尝试运行黄昏测试时,它会输出此错误:

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 作为我的 tags 。谁能告诉我我做错了什么?

【问题讨论】:

    标签: php laravel testing jquery-select2 laravel-dusk


    【解决方案1】:

    您不能在script() 之后使用链接,因为它返回一个数组而不是$this

    $browser->[...]
        ->script('jQuery(".select2").val(["1","2"]).trigger("change");')
    $browser->click('input[type=submit]#submit')
        ->assertPathIs('/posts');
    

    【讨论】:

      【解决方案2】:

      我有另一种选择 select2 的解决方案。

      ->press('.select2-container')
      ->waitFor('.select2-container--open', 1)
      ->click('ul.select2-results__options li:nth-child(2)')
      ->pause(1000)
      

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 2017-05-22
        • 2018-06-28
        • 2019-01-22
        • 2021-06-15
        • 2016-09-17
        • 1970-01-01
        • 2017-12-04
        • 2022-01-05
        相关资源
        最近更新 更多