testing - 组合/连接 TestCafe 选择器以供重用
问题描述
我使用页面对象模式,通常情况下,我喜欢在另一个选择器中处理一个元素。所以我只想重用一个已经定义的 CSS 选择器。我目前的解决方法只是定义一个纯字符串。
是否可以执行以下操作:
const list = (listName) => Selector('#list' + listName)
const item = (itemName) => Selector(list, '#item-' + itemName)
获得 Selector 的 CSS-Selector 文本就足够了,例如:
const list = (listName) => Selector('#list' + listName)
const item = (itemName) => Selector(`${list.selectorText} #item-${itemName}`)
或者查找方法支持选择器:
const list = (listName) => Selector('#list' + listName)
const item = (itemName) => list.find(Selector('#item-' + itemName))
解决方案
是的,你当然可以组合选择器字符串,因为它是一个通用的 css 选择器字符串。
注意:testcafe 测试 api 操作,例如 Click ( https://devexpress.github.io/testcafe/documentation/test-api/actions/click.html ) 接受字符串作为参数。如果不需要使用 withText、nth 等 Selector 类方法,可以编写如下测试:
const listSelector = (listName) => `#list${listName}`;
//somewhere in test:
await t.click(listSelector('My List Name');
推荐阅读
- angular - 如何在 ionic 3 应用程序中禁用请求缓存或添加刷新?
- completable-future - Axon & CompletableFuture
- django - 如何在 Django 中为历史表设置自动生成的元字段
- google-sheets - 多个 IF(ISNUMBER(搜索不包括
- bash - 作为参数的文件的 Unix Bash 内容在第一行停止
- c# - MongoDB 和派生类
- jquery - jQuery $.post() 无法与表单数据一起上传文件
- azure-cosmosdb - 配置 Cosmos DB,数据工厂 v2 中的批量插入库
- wso2 - WSO2 EI:使用 vfs 选择 csv 文件时如何处理 WSO2 中的瑞典语字符
- c# - 如何将 UDP 包发送到控制器?