【问题标题】:Is session cookie with session_start() automatically available under Selenium WebDriver?带有 session_start() 的会话 cookie 在 Selenium WebDriver 下是否自动可用?
【发布时间】:2018-03-02 09:25:47
【问题描述】:

我必须做什么才能使PHPSESSID cookie 可测试?

我在 index.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
         - \Helper\Acceptance

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

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

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

非常感谢任何帮助!

【问题讨论】:

    标签: selenium-webdriver codeception


    【解决方案1】:

    它确实与 docker setup .... 和其他有关。我们的 nginx 服务器在反向代理后面运行,而且我们有检查,如果您不是来自我们的域,则不允许您执行特定操作。由于某些未知的原因,这也以某种方式干扰了 cookie,甚至从一开始就是这样。

    解决方案: 在您的 docker-compose 中为 selenium 图像设置 extra_hosts

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 2011-01-10
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2012-06-28
      • 2014-06-23
      相关资源
      最近更新 更多