1

我试图在测试之前设置 cookie,但由于某种原因它们没有设置。

这是我的示例代码:

class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
    protected function setUp()
    {
        $this->setBrowser('firefox');
        $this->setBrowserUrl('http://dev.local/');
    }

    public function testTitle()
    {
        $session = $this->prepareSession();

        $session->cookie()->remove('language_version');
        $session->cookie()->add('language_version', 'en')->set();
        $this->url('/');

        $this->assertEquals('Title in English', $this->title());
    }
}

有谁知道该怎么做?非常感谢任何帮助。

4

2 回答 2

1

我在 Selenium 文档中找到了我的问题的答案:

如果您在开始与网站交互之前尝试预设 cookie,并且您的主页很大/加载需要一段时间,则另一种方法是在网站上找到一个较小的页面,通常 404 页面很小(http://example. com/some404page )

现在我的测试看起来像这样:

$this->url('/unit_tests.php');
$this->cookie()->remove('language_version');
$this->cookie()->add('language_version', 'en')->set();

$this->url('/');
$this->assertEquals('Title in English', $this->title());

/unit_tests.php是一个空的 PHP 文件,让我最初设置页面的 cookie。

于 2013-06-07T14:22:27.273 回答
0

cookie 不应该存在,因此删除将失败。Selenium 在每次运行测试套件时使用新的空配置文件运行浏览器。.

于 2013-06-07T12:19:27.103 回答