Как использовать Laravel Dusk с динамическими селекторами Gmail

Я изо всех сил пытаюсь получить согласованные результаты, используя Laravel Dusk для отправки электронных писем, войдя в Gmail и перейдя к кнопке «СОСТАВИТЬ», поскольку идентификатор и класс элементов динамически изменяются при перезагрузке страницы.

Я попытался использовать элемент проверки и скопировать селектор без везения.

Цель этого упражнения — просто лучше понять Laravel Dusk и повеселиться при этом.

Мой код ниже:

    public function testGmailExample()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('http://gmail.com')
        ->assertSee('Gmail')
        ->type('Email', '[email protected]')
        ->pause(1000)
        ->press('#next')
        ->pause(1000)
        ->assertSee('[email protected]')
        ->type('#Passwd', 'myPassword')
        ->press('#signIn')
        ->waitFor('#\3a xy > div > div', 10)
        ->click('#\3a xy > div > div')
        ->pause(1000)
        ->type('to', '[email protected]')
        ->type('subjectbox','Laravel Dusk is Awesome')
        ->click('Send')
        ->pause(3000);
        //Only had one success with the above code, would prefer consistent results
    });
}

Любая помощь будет оценена.


person Devin Norgarb    schedule 14.04.2017    source источник


Ответы (1)


Вы можете использовать clickLink() для этого:

$browser->clickLink('COMPOSE');

Из документации:

Чтобы щелкнуть ссылку, вы можете использовать метод clickLink в экземпляре браузера. Метод clickLink щелкнет ссылку с заданным отображаемым текстом.

person Drown    schedule 14.04.2017