【发布时间】:2019-07-22 01:37:02
【问题描述】:
我正在使用 Laravel 宅基地,我正在编写一个小工匠命令行工具,我需要使用 javascript 执行浏览我的网站。
我定期运行黄昏测试没有任何困难,所以我想我会使用 Laravel 的工具来编写这个脚本。
我首先在我的脚本中运行这个:
\Laravel\Dusk\TestCase::startChromeDriver();
这启动了驱动程序在端口 9515 上以用户 vagrant(默认宅基地用户)的身份正常运行
但是当我尝试访问它时(也从脚本中)我会得到一个错误:
Failed to connect to localhost port 9515: Connection refused
如果我改为在命令行上手动启动它:
$ ./vendor/laravel/dusk/bin/chromedriver-linux --port=9515
驱动程序再次以用户 vagrant 在端口 9515 上运行良好,但这次我的工具运行良好。
但我真的希望能够从该工具中启动 ChromeDriver。所以我也尝试了:
$process = new \Symfony\Component\Process\Process('./vendor/laravel/dusk/bin/chromedriver-linux --port=9515');
$process->start();
连接再次被拒绝。
知道为什么当我从命令行启动它而不是在我的工匠命令中启动它时它会起作用吗?
【问题讨论】:
-
你是如何从你的 artisan 命令访问 chromedriver 的?当 Laravel 为浏览器创建一个新的 RemoteWebDriver 时,它使用
retry(5, function(){}, 50)尝试连接 5 次,每次之间等待 50 毫秒。你用的是 Dusk 浏览器,还是有自己的实现? -
嗨 Travis,我正在使用 Dusk 浏览器,如果我手动启动 chromedriver(从脚本外部),它可以正常工作。但我注意到
Process使用sh -c /path/to/driver启动驱动程序
标签: laravel selenium-chromedriver homestead