Laravel Dusk, etkileyici, kullanımı kolay bir tarayıcı otomasyonu ve test API'si sağlar. Varsayılan olarak, Dusk yerel bilgisayarınıza JDK veya Selenium yüklemenizi gerektirmez. Bunun yerine, Dusk bağımsız bir ChromeDriver yüklemesi kullanır. Ancak, dilediğiniz diğer Selenium uyumlu sürücüleri kullanmakta özgürsünüz.

Kurulum

Başlamak için Google Chrome'u yüklemeli ve projenize laravel/dusk Composer bağımlılığını eklemelisiniz:

composer require laravel/dusk --dev
Dipnot : Dusk'ın servis sağlayıcısını manuel olarak kaydediyorsanız, bunu asla üretim ortamınıza kaydetmemelisiniz; çünkü bunu yapmanız, rastgele kullanıcıların uygulamanızla kimlik doğrulaması yapmasına yol açabilir.

Dusk paketini yükledikten sonra, dusk:install Artisan komutunu çalıştırın. dusk:install komutu bir tests/Browser dizini, bir örnek Dusk testi oluşturacak ve işletim sisteminiz için Chrome Sürücü ikilisini yükleyecektir:

php artisan dusk:install
Sonra, uygulamanızın .env dosyasında APP_URL ortam değişkenini ayarlayın. Bu değer, bir tarayıcıda uygulamanıza erişmek için kullandığınız URL ile eşleşmelidir.

Dipnot : Yerel geliştirme ortamınızı yönetmek için Laravel Sail kullanıyorsanız, lütfen Dusk testlerini yapılandırma ve çalıştırma ile ilgili Sail belgelerine de bakın.

ChromeDriver Kurulumlarını Yönetme

Laravel Dusk'ın dusk:install komutuyla yüklediğinden farklı bir ChromeDriver sürümü yüklemek isterseniz, dusk:chrome-driver komutunu kullanabilirsiniz:

# Install the latest version of ChromeDriver for your OS...
php artisan dusk:chrome-driver

# Install a given version of ChromeDriver for your OS...
php artisan dusk:chrome-driver 86

# Install a given version of ChromeDriver for all supported OSs...
php artisan dusk:chrome-driver --all

# Install the version of ChromeDriver that matches the detected version of Chrome / Chromium for your OS...
php artisan dusk:chrome-driver --detect
Dipnot : Dusk, chromedriver ikili dosyalarının çalıştırılabilir olmasını gerektirir. Dusk'ı çalıştırırken sorun yaşıyorsanız, şu komutu kullanarak ikili dosyaların çalıştırılabilir olduğundan emin olmalısınız: chmod -R 0755 vendor/laravel/dusk/bin/.

Diğer Tarayıcıları Kullanma

Varsayılan olarak, Dusk tarayıcı testlerinizi çalıştırmak için Google Chrome ve bağımsız bir ChromeDriver kurulumunu kullanır. Ancak, kendi Selenium sunucunuzu başlatabilir ve testlerinizi istediğiniz herhangi bir tarayıcıda çalıştırabilirsiniz. Başlamak için, uygulamanız için temel Dusk test durumu olan tests/DuskTestCase.php dosyanızı açın. Bu dosyada, startChromeDriver yöntemine yapılan çağrıyı kaldırabilirsiniz. Bu, Dusk'un ChromeDriver'ı otomatik olarak başlatmasını durduracaktır:

/**
 * Prepare for Dusk test execution.
 *
 * @beforeClass
 */
public static function prepare(): void
{
    // static::startChromeDriver();
}
Sonra, sürücü yöntemini istediğiniz URL ve porta bağlanacak şekilde değiştirebilirsiniz. Ek olarak, WebDriver'a geçirilmesi gereken "istenen yetenekleri" değiştirebilirsiniz:

use Facebook\WebDriver\Remote\RemoteWebDriver;

/**
 * Create the RemoteWebDriver instance.
 */
protected function driver(): RemoteWebDriver
{
    return RemoteWebDriver::create(
        'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs()
    );
}