2017-03-22 22 views
6

mam przygotowanie testów za pomocą [Testy przeglądarki (laravel zmrok)] [1]Jak przewinąć stronę w przeglądarce - laravel Dusk (testy Browser)

[1]: https://laravel.com/docs/5.4/dusk i muszę zmusić kliknij element, który nie jest widoczne przed przewinięciem strony przeglądarki. W jaki sposób można zdefiniować test zmierzchu, aby kliknąć element obserwować lub przewinąć stronę przeglądarki?

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

Odpowiedz

4

Na podstawie odpowiedzi z @james

można wykonywać skrypty, które jednak nie mogą być przykuty. Więc możesz po prostu wykonać przewijanie zanim pojawi się kliknięcie.

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

Jeśli wiesz, jak daleko trzeba przewijać, można spróbować:

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

Nie jestem pewien, jak go używać. Kiedy próbuję, otrzymuję komunikat o błędzie: 'Błąd: Wywołanie funkcji członka pauzy() na wartości null' – Tomasz

3

Można teraz używać metody script:

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