2017-03-22 124 views
6

我使用[瀏覽器測試(Laravel黃昏)] [1]如何向下滾動瀏覽器頁面 - Laravel黃昏(瀏覽器測試)

[1]準備測試:https://laravel.com/docs/5.4/dusk,我需要強迫點擊哪個元素在向下滾動瀏覽器頁面之前沒有看到。如何在黃昏測試中定義點擊不顯示元素或滾動瀏覽器頁面?

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

回答

4

基於來自@詹姆斯

可以執行腳本的答案,但這些不能被鏈接。所以你可以在點擊發生之前執行滾動。

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

如果你知道你有多遠滾動,你可以嘗試:

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

我不知道如何使用它。當我嘗試我收到錯誤:'錯誤:調用成員函數暫停()null' – Tomasz

3

現在,您可以使用script方法:

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