【发布时间】:2019-10-11 21:44:06
【问题描述】:
我想创建一个我将从 Controller 使用的测试,所以我写了:
<?php
namespace App\Http\Controllers\Modules;
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Laravel\Dusk\ElementResolver;
use Exception;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Laravel\Dusk\Browser;
use Laravel\Dusk\Chrome\ChromeProcess;
class TestController extends Controller {
public function test() {
$process = (new ChromeProcess)->toProcess();
if ($process->isStarted()) {
$process->stop();
}
$process->start();
$options = (new ChromeOptions)->addArguments(['--disable-gpu', '--headless', '--no-sandbox']);
$capabilities = DesiredCapabilities::chrome()
->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = retry(1, function () use ($capabilities) {
return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);
}, 50);
$browser = new Browser($driver, new ElementResolver($driver, ''));
$browser->resize(1920, 1080);
$browser->visit('https://example.com/login')->click('#.btn > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block');
$browser->driver->takeScreenshot(base_path('tests/Browser/screenshots/logged.png'));
}
}
当我使用 localhost:8000/test 运行这个脚本时,我收到了这条消息:
Facebook\WebDriver\Exception\WebDriverCurlException 卷曲错误 使用参数将 http POST 抛出到 /session: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"","args":["--disable-gpu","--无头","--no-sandbox"]}}} 无法连接到 localhost 端口 9515:连接被拒绝
我该如何解决这个问题?
目前我在 Win10 上使用 WAMP 服务器进行本地测试,但随后我将在 Linux Ubuntu 18 上移动代码。
【问题讨论】:
-
过去 3 天我一直在尝试解决非常相似的问题。我还没有找到适合我的解决方案:(
-
必须有某种方法可以从控制器运行它
-
@Watercayman 知道这里有什么问题吗?
-
为了在控制器中运行 Dusk,我使用了 - github.com/duncan3dc/dusk 。我没有深入研究他的代码,但它工作得很好
-
您使用的是哪个版本的 Chrome?
标签: php laravel testing phpunit laravel-dusk