我正在尝试在Laravel Dusk上测试SP版本的视图。
我使用 jenssegers/agent 切换视图以在我的控制器上渲染。
运行拉拉维尔黄昏时有什么方法可以更改用户代理吗?
您可能希望像这样覆盖TestCase::driver
函数:
protected function driver()
{
// iPhone 6, for instance
$ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1';
$capabilities = DesiredCapabilities::chrome();
$options = new ChromeOptions;
$options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]);
return RemoteWebDriver::create(
'http://localhost:9515', $options->toCapabilities()
);
}
事实上,马桑的答案是部分正确的,但没有真正给出一个应该像这样的例子:
<?php
namespace TestsBrowser;
use FacebookWebDriverChromeChromeOptions;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverRemoteDesiredCapabilities;
use TestsDuskTestCase;
use LaravelDuskBrowser;
use IlluminateFoundationTestingDatabaseMigrations;
class ExampleTest extends DuskTestCase
{
private $ua = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36';
/**
* A Dusk test example.
*
* @return void
*/
public function testExample()
{
$this->browse(function (Browser $browser ) {
$browser->visit('https://www.whatismybrowser.com/');
dd("Stop");
});
}
protected function driver()
{
$ua = $this->ua;
$capabilities = DesiredCapabilities::chrome();
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
// '--headless',
'--force-device-scale-factor=0.8',
'--window-size=1920,1080',
]);
$options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]);
return RemoteWebDriver::create(
'http://localhost:9515', $options->toCapabilities()
);
}
}