Проблемы с использованием Laravel Dusk

Я новичок в Laravel Dusk. Я пытаюсь написать сценарий, который щелкает ссылку a [href], а затем assertSee something. Я провел целый день, но не могу.

<li>
                    <a href="{{url('/administrator')}}/create" id="create-new-agent" ><div class="pull-left"><i class="zmdi zmdi-smartphone-setup mr-20"></i><span class="right-nav-text">New Admin</span></div><div class="clearfix"></div></a>
                </li>

Мой сценарий

/** @test */
    public function can_create_admin_with_authentication()
    {
        $admin = factory(Admin::class)->create([
            'email' => '[email protected]',
            'password' => bcrypt('123456')
        ]);
        $this->browse(function (MyBrowser $browser) {
            $browser->loginAs(Admin::find(1))
                ->click('a[href="/administrator/create"]')
                ->assertSee('Create');
        });

    }

Я не большой поклонник использования CSSselector. Могу ли я использовать xpath или идентификатор ссылки ...

Большое спасибо


person daniel8x    schedule 08.10.2017    source источник
comment
пробовали ли вы $ browser- ›loginAs (Admin :: find (1)) -› clickLink ('New Admin') - ›assertSee ('Create');   -  person pseudoanime    schedule 09.10.2017
comment
@pseudoanime Я получил эту ошибку. Facebook \ WebDriver \ Exception \ NoSuchElementException: нет такого элемента: невозможно найти элемент: {method: css selector, selector: body New Admin} (Информация о сеансе: headless chrome = 61.0.3163.100) (Информация о драйвере: chromedriver = 2.31.488774 ( 7e15618d1bf16df8bf0ecf2914ed1964a387ba0b), платформа = Mac OS X 10.11.6 x86_64)   -  person daniel8x    schedule 10.10.2017


Ответы (1)


Проверил, можно без проблем вместо:

->click('a[href="/administrator/create"]')

использовать

->click('#create-new-agent')

и это будет работать.

Я вижу, что вы также пропускаете метод visit(). Весь тест должен выглядеть так:

public function can_create_admin_with_authentication()
{
    $admin = factory(Admin::class)->create([
        'email' => '[email protected]',
        'password' => bcrypt('123456')
    ]);
    $this->browse(function (MyBrowser $browser) {
        $browser->loginAs(Admin::find(1))->visit('/your/url')
            ->click('#create-new-agent')
            ->assertSee('Create');
    });

}

Вместо /your/url укажите URL-адрес, который вы хотите посетить, например, / для главной страницы.

person Marcin Nabiałek    schedule 09.10.2017
comment
Я получил эту ошибку. Facebook \ WebDriver \ Exception \ NoSuchElementException: нет такого элемента: невозможно найти элемент: {method: css selector, selector: body # create-new-agent} (Информация о сеансе: headless chrome = 61.0.3163.100) (Информация о драйвере: chromedriver = 2.31.488774 (7e15618d1bf16df8bf0ecf2914ed1964a387ba0b), платформа = Mac OS X 10.11.6 x86_64) - person daniel8x; 10.10.2017
comment
Я чувствую, что Laravel Dusk даже не заходит - ›click (). когда я делаю dump (), я даже не получаю исходную страницу, которая, как я ожидаю, содержит ссылку. Но в любом случае, думаю, вы правы. Я забыл добавить - ›visit (). Большое спасибо :) - person daniel8x; 11.10.2017