travoltron / dusk-secure
一个更安全的Laravel Dusk,它提供了简单的端到端测试和浏览器自动化,而不会暴露路由或认证。
Requires
- php: >=5.6.4
- facebook/webdriver: ~1.0
- illuminate/console: ~5.4
- illuminate/support: ~5.4
- nesbot/carbon: ~1.20
- symfony/console: ~3.2
- symfony/process: ~3.2
Requires (Dev)
- mockery/mockery: ^0.9.6
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-14 19:58:54 UTC
README
是什么?
Laravel Dusk是一个非常简单的浏览器自动化和测试工具。然而,它是以测试为目的而制作的,因此从本质上讲,它从未真正打算成为生产环境中的亮点。
不再是了。我已经去掉了所有暴露路由或与您的用户交互的部分。
为什么?
这样我们就可以使用我们所有人都在爱和了解的框架中的惊人表达式的API来抓取网页!所有您熟悉和喜爱的方法都在那里——除了与用户交互或充当用户的方法——都在那里。更多详细信息,请参阅下面的官方文档。
注意事项和注意事项
当使用此工具作为抓取器时,您通常限于制作dusk测试,然后通过php artisan dusk
触发它们。
您可以将此过程自动化,并将其应用于可安排的命令总线。
以下是方法
像以前一样制作您的dusk测试。然后,创建一个新的命令,确保为其提供一个独特的签名。
在handle方法中,简单地创建您刚刚创建的测试类的实例,初始化它并运行它
/** * Execute the console command. * * @return mixed */ public function handle() { $event = new \Tests\Browser\Test; $event->prepare(); $event->testExample(); }
在测试内部处理您抓取的数据——您就成功了。
当您为dusk创建测试时,请确保包括$browser->quit();
以确保浏览器在处理完您抓取的数据后进行清理。完成后这样做。
接下来是什么?
在接下来的几天内,我将创建一个2.0
分支,以跟上官方包的步伐。它带来了无头操作,这将真正帮助进行一些严重的抓取。
开玩笑的!版本1.1.0升级了二进制文件,并允许无头操作。
要运行您的无头抓取,请查看DuskTestCase.php
,确保向您的use语句中添加ChromeOptions,并设置$options
变量,然后像下面那样传递给RemoteWebDriver。
use Facebook\WebDriver\Chrome\ChromeOptions; /** * Create the RemoteWebDriver instance. * * @return \Facebook\WebDriver\Remote\RemoteWebDriver */ protected function driver() { $options = (new ChromeOptions)->addArguments(['--headless']); return RemoteWebDriver::create( 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); }
如果有人想帮忙提交PR。
官方文档
Dusk的文档可以在Laravel网站上找到。
许可证
Dusk-Secure是开源软件,许可证为MIT许可证