- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Controller 中使用 Laravel Dusk 供用户使用我的网站获取任何网站的屏幕截图。
我的代码:
<?php
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;
use Facebook\WebDriver\WebDriverBy;
use Mail;
class ScreenController extends Controller {
public function take_screenshoot() {
$process = (new ChromeProcess)->toProcess();
if ($process->isStarted()) {
$process->stop();
}
$process->start();
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--headless',
'--window-size=1920,1080',
'--no-sandbox'
]);
$capabilities = DesiredCapabilities::chrome()->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = retry(5, function () use ($capabilities) {
return RemoteWebDriver::create('http://localhost:9515', $capabilities, 50000, 60000);
}, 50);
$browser = new Browser($driver, new ElementResolver($driver, ''));
$browser->resize(1920, 1080);
$browser->visit('http://www.example.com')->mouseover('iframe');
$screenshoot_name = md5(time());
$browser->driver->takeScreenshot(base_path('tests/Browser/screenshots/'.$screenshoot_name.'.png'));
echo "<img src='/tests/Browser/screenshots/".$screenshoot_name.".png></img>";
$process->stop();
}
$process->stop();
不关闭浏览器?
$browser->quit();
$browser->driver->quit();
Facebook \ WebDriver \ Exception \ WebDriverCurlException Curl error thrown for http DELETE to /session/8a4f02f2d13648ccfbdead97b338e4f4 Failed to connect to localhost port 9515: Connection refused
# ps -aux | less
最佳答案
我在使用包裹 chrome 的包时遇到了类似的问题。我最终做的是在命令行上运行它:
pkill -f -- "chromium-browser"
chromium-browser
的进程在里面。我确定有一种方法可以将其添加到代码中以在完成后触发。
关于php - Laravel Dusk 和内存使用 - 如何关闭浏览器和自定义进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493345/
我正在尝试运行 Laravel Dusk,我需要使用测试数据库。当我查看屏幕截图时,它说数据库不存在。问题是数据库是在 .env 上定义的,而不是在 .env.dusk 上定义的……我试图将文件重命名
如何点击使用 laravel dusk 隐藏的元素?我们在 Selenium 中有脚本方法。我们如何使用 Laravel Dusk 实现相同的功能? 最佳答案 尝试$browser->script('
我有一个页面,其中包含一些禁用的输入、跨度和 div。 在后台我等待按键。这是一些内存游戏的背景。 我的问题是,结果证明它很难测试。 我知道两个函数来模拟输入:type()和 keys() .当我使用
标题说明了一切。我想知道如何使用内存中的 SQLite 数据库使用 Dusk 正确设置新的 Laravel 5.4 项目。 我可以运行测试,但出现错误:“没有这样的表:用户” 我已经创建了一个新的 L
我刚开始在 Laravel 5.8 上使用 Laravel Dusk 并且已经遇到了一个问题。在 Google 上搜索了很多,但没有找到答案。 $browser->visit('https://www
在下面的代码中,我想检查元素是否存在于 XPath 中,然后只有它应该执行代码。 if($browser->driver->findElement(WebDriverBy::xpath('/html/
即使像下面这样运行一个简单的测试也是如此: public function test_simple() { $user = factory(User::class)->create();
我正在编写一些测试,我想看看 Dusk 是否正确填写了输入字段,但 Dusk 在运行测试时不显示浏览器,有什么办法可以强制它这样做吗? 最佳答案 在 tests\DuskTestCase.php 文件
我有一个场景,我不想检查如果元素存在并且可见/可点击。如果不是,则脚本处理继续。 虽然 Laravel Dusk 提供了 $browser->assertVisible($selector) 方法,但
有没有办法在运行 Laravel Dusk 时获得代码覆盖率? 我知道它运行浏览器测试,所以它不会检查代码,但是有没有办法添加一个监听器来检查覆盖了哪些代码?我现在没有看到关于这个主题的任何内容。 最
Dusk 正在为在控制台中返回失败/警告的测试提供单独的日志,但我真正想要的是一个大日志文件或报告,其中列出了 Dusk 脚本中每个测试的通过/失败状态。 任何人都可以建议一种方法来解决这个问题吗?我
使用 Atlassian Bamboo 运行Dusk测试后,Chrome进程仍然是“僵尸”。 下面是我的驱动程序代码初始化: $options = (new ChromeOptions())
我正在使用 Laravel Dusk 进行浏览器测试。我对它还是陌生的,正在学习它是如何工作的。我正在使用大量 JavaScript 来帮助完成我需要做的事情。 我有一个需要填写的模态窗体,我可以使用
我在 Laravel 5.4 框架上的项目,我正在使用 Dusk用于浏览器测试。我有一个页面,其中有几个我想独立测试的部分,但是我遇到了一个问题,我必须为每个单独的测试启动一个新的浏览器实例、登录并导
最近将一个 5.3 项目升级到 5.4,一切看起来都不错。 今天我开始实现 Dusk,但是在运行示例测试时遇到了问题 ☁ footy-finance [5.4] ⚡ php artisan dusk
我正在使用 Laravel Dusk使用我的浏览器自动执行程序Laravel Dusk 使用 ChromeDriver 实现自动化我遇到的问题是我在常规 Google Chrome 浏览器上安装了一些
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我刚开始研究 Dusk - 我正在测试一些用户功能。 下面是我当前的测试,但是我正在尝试自己清理 - 例如,新创建的用户应该在完成后从数据库中删除。 我尝试使用tearDown 方法,但它似乎并没有真
我在 Controller 中使用 Laravel Dusk 供用户使用我的网站获取任何网站的屏幕截图。 我的代码: toProcess(); if ($process->isStar
我目前让 PhpStorm 成功运行 Dusk 测试,但是我希望它使用我设置的测试数据库。根据其他在线线程和资源,我创建了指向我创建的测试数据库的 .env.dusk.local 和 phpunit.
我是一名优秀的程序员,十分优秀!