2017-03-22 1 views
6

Ich bereite Tests mit [Browser-Tests (Laravel Dämmerung)] [1]Wie unten scrollen Browserseite - Laravel Dusk (Browser-Tests)

[1]: https://laravel.com/docs/5.4/dusk und ich zwingen müssen Element klicken die wird nicht angezeigt, bevor die Browserseite herunterscrollt. Wie kann man im Dämmerungs-Test definieren, um auf das Element zu klicken oder die Browser-Seite zu scrollen?

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) 
       ; 
     }); 
    } 
} 

Antwort

4

Basierend auf der Antwort von @james

Sie Skripts ausführen können, aber diese können nicht verkettet werden. So können Sie den Bildlauf nur ausführen, bevor der Klick erfolgt.

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; 
    }); 
} 
3

Wenn Sie wissen, wie weit Sie scrollen müssen, könnten Sie versuchen:

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

Ich bin nicht sicher, wie es zu benutzen. Wenn ich versuche, erhalte ich einen Fehler: 'Fehler: Aufruf an eine Mitgliedsfunktion pause() bei null' – Tomasz

3

können Sie verwenden jetzt die script Methode:

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