我有
openjdk version "1.8.0_181"
ChromeDriver 2.42.591071
Google Chrome 69.0.3497.100
Selenium build info: version: '3.14.0'
并且我正在使用当前代码段进行测试:
<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Chrome\ChromeOptions;
ini_set("display_errors", "on");
error_reporting(E_ALL);
require_once('vendor/autoload.php');
// start Chrome with 5 second timeout
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$options = new ChromeOptions();
$options->addArguments(array(
'--headless',
'--no-sandbox',
'--window-size=1920,1080',
'user-data-dir=/usr/share/nginx/html/browser/tmp/profile',
));
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
$driver->get('http://example.com/browser/cookies.php');
$driver->takeScreenshot('/usr/share/nginx/html/browser/tmp/screen.png');
// close the browser
$driver->quit();
echo "<img src='tmp/screen.png' />";
cookies.php
中的代码是:
<?php
if(isset($_COOKIE['test'])){
echo "It is set";
}else{
setcookie("test", "testCookie");
echo "Setting it ...";
}
我希望该Cookie在第二次访问时可以重复使用,因此无论请求多少次,我都会得到“已设置”,而我却得到了“设置...”。 / p>
我检查了配置文件的路径,它已成功创建。
我也在浏览器中尝试了该页面,该页面正常工作,所以我在这里缺少什么?
谢谢
答案 0 :(得分:1)
您的浏览器是从头开始运行的。您知道$ _COOKIE存储在浏览器中。因此,除非您在退出时保存cookie并在启动时加载,否则您就无法到达。
在以下位置查看示例:Laravel Dusk - Reuse browser with its session and cookies
也不要在初始导航之前预加载Cookie。那不行首先,您应该导航到url,然后加载cookie。然后重新加载页面。您将看到第二个页面加载将包含cookie。