Laravel 8 瀏覽器宏

2021-07-26 09:18 更新

如果你想定義一個可以在各種測試中重復(fù)使用的自定義瀏覽器方法,可以在 Browser 類中使用 macro 方法。通常,你應(yīng)該從 服務(wù)提供者boot 方法中調(diào)用它:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Laravel\Dusk\Browser;

class DuskServiceProvider extends ServiceProvider
{
    /**
     * 注冊Dusk的瀏覽器宏。
     *
     * @return void
     */
    public function boot()
    {
        Browser::macro('scrollToElement', function ($element = null) {
            $this->script("$('html, body').animate({ scrollTop: $('$element').offset().top }, 0);");

            return $this;
        });
    }
} 

macro 函數(shù)接收方法名作為其第一個參數(shù),并接收閉包作為其第二個參數(shù)。 將宏作為 Browser 實(shí)現(xiàn)上的方法調(diào)用宏時,將執(zhí)行宏的閉包:

$this->browse(function ($browser) use ($user) {
    $browser->visit('/pay')
            ->scrollToElement('#credit-card-details')
            ->assertSee('Enter Credit Card Details');
}); 


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號