簡體   English   中英

Laravel Dusk使用測試結構在服務中無法連接

[英]Laravel Dusk use test structure in service can't connect

這很奇怪。 所以我有下面的代碼,我已經移植到服務中,以便從控制器運行它,並能夠傳遞一些信息。

$this->browse(function (Browser $browser) {
    $browser->visit('https://urlforsite.co.uk/find-an-engineer/')
        ->type("EngineerId", "2231321")
        ->click('#checkEngineer');

    if ($browser->assertSee("Engineer cannot be found")) {
        dd("hello");
    }

    $text = $browser->text('.engineer-search-results-container .search-result .col-md-8 .row .col-xs-10 h3');
        dd($text);
    });

預期的結果將是DD的一個

dd("hello);dd($text);

實際結果:

Failed to connect to localhost port 9515: Connection refused

如果我在實際的dusk測試中運行它並運行php artisan dusk它可以正常工作。 是否有一些命令首先運行,以便它可以到達外面? 甚至可以這樣做嗎?

正如Arun Code在鏈接中提到的: https//github.com/laravel/dusk/issues/356有響應允許您從服務/控制器打開瀏覽器,如下所示:

use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Laravel\Dusk\Browser;
use Laravel\Dusk\Chrome\ChromeProcess;

$process = (new ChromeProcess)->toProcess();
$process->start();
$options = (new ChromeOptions)->addArguments(['--disable-gpu', '--headless']);
$capabilities = DesiredCapabilities::chrome()->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = retry(5, function () use($capabilities) {
    return RemoteWebDriver::create('http://localhost:9515', $capabilities);
}, 50);
$browser = new Browser($driver);
$browser->visit('https://www.google.com');
$browser->quit();
$process->stop();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM