Как прокрутить страницу браузера - Laravel Dusk (браузерные тесты)

Я готовлю тесты, используя [тесты браузера (Laravel Dusk)] [1]

[1]: https://laravel.com/docs/5.4/dusk и мне нужно нажать на элемент, который не отображается перед прокруткой вниз страницы браузера. Как определить в тесте dusk, чтобы щелкнуть элемент unsee или прокрутить страницу браузера ?

class SliderTest extends DuskTestCase
{
    /**
     * A Dusk test example.
     *
     * @return void
     */
    public function testExample()
    {
        $this->browse(function ($browser) {
            $browser
                    ->visit('http://localhost:8000/admin/login')                    
                    ->click('label[for=test_1]')
                    ->pause(500)
                ;
        });
    }
}

3 ответов


на основе ответа от @james

вы можете выполнять скрипты, но они не могут быть соединены. Таким образом, вы можете просто выполнить прокрутку до щелчка.

public function testExample()
{
    $this->browse(function ($browser) {
        $browser
                ->visit('http://localhost:8000/admin/login')
                ->driver->executeScript('window.scrollTo(0, 500);'); 
                // can't chain methods after this
        $browser                    
                ->click('label[for=test_1]')
                ->pause(500) //you can keep chaining here;
    });
}

теперь вы можете использовать script способ:

$browser->script('window.scrollTo(0, 500);');


Если вы знаете, как далеко вам нужно прокрутить, вы можете попробовать:

$browser->driver->executeScript('window.scrollTo(0, 500);');