1

我正在尝试编写代码来登录用户,这是该场景的先决条件。我不想让浏览器真正访问登录页面,填写字段并提交,这对于每个场景来说似乎都是浪费时间。我想我只会使用登录用户并设置他的会话变量的幕后代码。像这样...

$fr_user = new User();
$user_id = 0;
$fr_user->loginUser($email,$pwd);
$user_id = $_SESSION['fr_id'];
$user = new User($user_id);

<some checks to make sure the $user_id set properly...>

$this->getSession()->visit($url."?".SID);

如果我在步骤定义中对 $_SESSION 变量进行 var_dump,我可以看到它运行良好,fr_id 正在设置。

我什至让它将 php 会话 ID 发送到我正在访问的网页,但是当我在实际网页上执行 var_dump 时,即使会话 ID 相同,会话也是完全空白的。(中间没有任何代码会删除任何东西)

那么,我错过了什么?在行为代码和硒浏览器窗口中是否发生了单独的会话?我如何让他们交流?

谢谢

4

1 回答 1

1

我不是很肯定,但我认为您正在尝试从客户端访问 $_SESSION 变量数据。该变量只能从服务器端代码访问。

session_id 来回传递给浏览器,但实际数据不是。

如果您希望在客户端可以访问数据,则需要在服务器端使用函数 setcookie() 将 $_SESSION 值转换为原始 cookie。

于 2013-11-14T17:25:59.430 回答