无法识别 CakePHP 2.6 中的 Selenium 请求
Can't identify Selenium requests in CakePHP 2.6
我在将 CakePHP 与 PHPUnit 和 Selenium 结合使用时遇到问题,而且在 Internet 上很难找到任何帮助。我根本不知道如何在 CakePHP 中识别请求来自我的 Selenium 代理,以便我可以相应地设置连接和数据库环境。
非常感谢任何帮助!当请求来自 Selenium 时,有关设置我的 CakePHP 应用程序数据库环境的最佳方式的更多信息也非常受欢迎。
第一步是将 Selenium 中的用户代理设置为您的应用可以识别的特殊内容。见 Selenium WebDriver Documentation.
然后在 CakePHP 中,您可以使用 global function env()
来测试 HTTP_USER_AGENT
值。 env
是用于检查环境变量的包装器,例如 $_SERVER
.
例如在您的 database.php
文件中:
var $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => '****',
'database' => 'production_db',
'prefix' => ''
);
function __construct() {
// set database connection settings for testing environment
if (stristr(env('HTTP_USER_AGENT'), 'selenium') {
$this->default['database'] = 'test_db';
}
}
如果您不能使用 Selenium 设置用户代理,也许您可以使用 URL.
传递一个 get 变量
为 PHPUnit 使用 Selenium 扩展的示例:
$this->setBrowserUrl('http://www.example.com?selenium=true');
在 CakePHP 中,您将访问 $_GET
数组中的变量。
我在将 CakePHP 与 PHPUnit 和 Selenium 结合使用时遇到问题,而且在 Internet 上很难找到任何帮助。我根本不知道如何在 CakePHP 中识别请求来自我的 Selenium 代理,以便我可以相应地设置连接和数据库环境。
非常感谢任何帮助!当请求来自 Selenium 时,有关设置我的 CakePHP 应用程序数据库环境的最佳方式的更多信息也非常受欢迎。
第一步是将 Selenium 中的用户代理设置为您的应用可以识别的特殊内容。见 Selenium WebDriver Documentation.
然后在 CakePHP 中,您可以使用 global function env()
来测试 HTTP_USER_AGENT
值。 env
是用于检查环境变量的包装器,例如 $_SERVER
.
例如在您的 database.php
文件中:
var $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => '****',
'database' => 'production_db',
'prefix' => ''
);
function __construct() {
// set database connection settings for testing environment
if (stristr(env('HTTP_USER_AGENT'), 'selenium') {
$this->default['database'] = 'test_db';
}
}
如果您不能使用 Selenium 设置用户代理,也许您可以使用 URL.
传递一个 get 变量为 PHPUnit 使用 Selenium 扩展的示例:
$this->setBrowserUrl('http://www.example.com?selenium=true');
在 CakePHP 中,您将访问 $_GET
数组中的变量。