testing - TestCafe:如何将页面上的按钮组件设置为单击但未释放的按下状态?
问题描述
我正在创建一个自动化测试来测试元素(按钮组件)的不同规范或属性,但为了做到这一点,我必须强制按钮进入特定状态,例如按下和禁用状态。我已经为焦点和悬停状态完成了它。
如何将页面上的按钮元素/组件设置为单击但未释放按钮的按下状态 - 类似于按下键?询问,因为单击状态和按下状态的规格(文本颜色和背景颜色)不同。
如何将页面上的按钮元素/组件设置为禁用状态。
甚至可以使用浏览器强制类似于检查/开发工具的元素状态吗?
谢谢
解决方案
目前,您无法在mousedown
没有进一步mouseup
操作的情况下提供操作,也无法像在 DevTools 中那样强制元素状态。
但是,如果您想将按钮状态设置为disabled
,我认为ClientFunctions机制可以帮助您。请参阅以下代码:
import { Selector, ClientFunction } from 'testcafe';
fixture ``
.page ``;
const btn = Selector('button');
const setDisabled = ClientFunction(() => {
btn().setAttribute('disabled', 'disabled');
}, { dependencies: { btn } });
test('test', async t => {
await setDisabled();
});
推荐阅读
- terraform - 如何使用 terraform aws-lambda 模块引用本地打包的源文件
- python - 为什么这个列表理解比 for 循环慢得多?
- python - leave 类型的对象不是 JSON 可序列化的
- r - 为什么我无法将我的数据集附加到 R studio?这以前没有发生过
- python - "in" 运算符链接( True in [True] in [True] OUTPUT: False )
- python-3.x - 修复或删除熊猫中带有额外列的行
- python - 我们需要使用什么格式将数据存储在 db.Time 中?
- scala - 在scalaj中解析HttpResponse主体
- laravel - Laravel 中的 MySQL 查询慢,但在 phpMyAdmin 中非常快
- if-statement - 如果父级不可见,则 IntroJs 提示