我有一个小问题,我正在尝试使用 Codeception 来运行我的第一个测试阶段。为此,我使用 Selenium2 和 PrestaShop。
我尝试实现的第一步是登录 PrestaShop 的后台。
但似乎它不想连接到 PrestaShop Backoffice。我被重定向到登录页面!
有谁知道这可能来自哪里?似乎有一些关于 cookie 或会话的东西,但我不知道如何解决这个问题!
编辑:这是我的代码:
Selenium.suite.yml :
class_name: SeleniumGuy
modules:
enabled:
- SeleniumHelper
- Selenium2
config:
Selenium2:
url: 'http://localhost/Sites/PrestaShop1.5.4/'
browser: 'firefox'
capabilities:
unexpectedAlertBehaviour: 'accept'
密码接收.yml
paths:
tests: tests
log: tests/_log
data: tests/_data
helpers: tests/_helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: false
memory_limit: 1024M
log: true
modules:
config:
Db:
dsn: ''
user: 'root'
password: 'root'
dump: tests/_data/dump.sql
在文件夹 tests/Selenium 我有 PrestaShopGlobalCest.php
<?php
use \SeleniumGuy;
class PrestaShopModuleListCest
{
// tests
public function install_the_module(SeleniumGuy $I) {
PrestaShopGlobalHelper::loginBackoffice($I);
PrestaShopGlobalHelper::goToPage($I, 'modules');
}
}
_bootstrap.php
<?php
Codeception\Util\Autoload::registerSuffix('Helper', __DIR__.'/../helpers/Selenium');
?>
在测试/助手/硒我有
PrestaShopGlobalHelper
<?php
use \SeleniumGuy;
class PrestaShopGlobalHelper
{
static $mainTabID = array(
'modules' => 'maintab15'
);
static $menuLink = array(
'modules' => '#maintab15 .submenu li:first'
);
// tests
static public function loginBackOffice(SeleniumGuy $I) {
$I->wantTo('Login in Backoffice');
$I->amOnPage('/bb');
PrestaShopGlobalHelper::login($I);
}
static public function login(SeleniumGuy $I, $login = '****', $pass = '****')
{
$I->fillField('#email',$login);
$I->fillField('#passwd',$pass);
$I->click('Connexion');
}
static public function goToPage(SeleniumGuy $I, $page)
{
$I->moveMouseOver('#'.self::$mainTabID[$page]);
$I->click(self::$menuLink[$page]);
}
}