PHPUnit Selenium 2扩展设置cookie

时间:2013-06-05 15:28:51

标签: php selenium phpunit

我正在尝试在测试之前设置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());
    }
}

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

2 个答案:

答案 0 :(得分:1)

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

  

如果您在开始与网站交互之前尝试预设Cookie并且您的主页很大/需要一段时间才能加载替代方法,那就是在网站上找到一个较小的网页,通常404页面很小({{3 }})

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

$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。

答案 1 :(得分:0)

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