wordpress - 使用 WP_UnitTestCase 编写功能测试
问题描述
TL;DR 任何人都知道在 Wordpress 上运行 selenium 测试时如何登录用户facebook/php-webdriver
?
我正在尝试使用 Selenium 和WP_UnitTestCase
.
为了让我的应用程序加载,我需要一个登录用户,所以我创建了一个夹具:
public function setUp() {
$user_id = 1;
$user = get_user_by( 'id', $user_id );
if( $user ) {
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login );
}
$host = 'http://localhost:4444/wd/hub';
$desired_capabilities = DesiredCapabilities::firefox();
$desired_capabilities->setCapability( 'acceptSslCerts', false );
$this->webDriver = RemoteWebDriver::create( $host, $desired_capabilities );
}
不幸的是,webdriver 打开的浏览器似乎不共享正在运行的单元测试的状态/cookie,因此不会有用户登录,即使从单元测试本身,用户也已登录。至少那是我现在看到的。
如示例中所示,webdriver 可以设置 cookie,我假设我必须以这种方式模拟登录用户。
有任何想法吗?
解决方案
推荐阅读
- google-apps-script - 我已经使用条件(If/Else 语句)添加了一个行,我应该如何将公式添加到新插入的行
- angular - 使用 Angular cli 的 Angular 6 的 i18n
- node.js - 如何在 Azure bot 框架中为每组对话框创建单独的文件 - Node.js
- c# - 使用 ctrl 键滚动时禁用 RichTextBox 缩放
- c++ - 将弹药计数添加到游戏中。
- php - 使用用户定义字段时,Payu 中的哈希参数计算错误导致交易失败
- windows - 审核成功和失败事件到文件夹
- css - 引导行 100% 宽度,没有水平滚动和自适应每个尺寸
- android - Flutter NetworkImage 处理 403 错误
- angular - 在工作区库中使用 Angular 环境变量