带有 session_start() 的会话 cookie 是否在 Selenium WebDriver 下自动可用



我该怎么做才能使PHPSESSID cookie可测试?

我有索引.php我用session_start ()设置cookie,这使我在"现实生活中"会话cookie" PHPSESSID"。

现在我只想看到 cookie 存在

$I->amOnPage('/index.php');
$I->seeCookie('PHPSESSID');

但我得到

Fail Failed asserting that an array contains 'PHPSESSID'.

像see('something', 'h4'(这样的简单测试工作得很好。

acceptance.suite.yml

 actor: AcceptanceTester
 modules:
     enabled:
         - WebDriver:
             url: http://nginx-web/     
             browser: chrome
             host: chrome                
             window_size: maximize
         - HelperAcceptance

我确实使用以下图像在 Docker 中运行它,但这应该没有任何区别:

codeception/codeception:2.3.5 and 
selenium/standalone-chrome-debug:3.7.1

问题:我是否必须做其他事情才能使饼干"活起来"?我几乎认为我需要在Codeception中使用setCookie,但这似乎不合逻辑(手动创建cookie(。如果我这样做,我实际上无法测试 session_start(( 是否有效。

任何帮助都非常感谢!

它确实与码头工人设置有关....等。我们的nginx服务器在反向代理后面运行,此外,我们进行了检查,如果您不是来自我们的域,则不允许执行特定操作。对于一些尚不为人所知的原因,即使从一开始就如此,这也以某种方式干扰了cookie。

溶液:在 Docker 撰写集中的硒映像extra_hosts

最新更新