javascript - 赛普拉斯测试的随机元素选择
问题描述
目前正在测试一个本地电影预订网站,我必须在其中输入选定电影的一定数量的票。此处附加屏幕的屏幕截图 -
用于重现问题的存储库 - https://github.com/zac11/iCinema
- 克隆回购。
- 进入
client
目录并执行npm i
npm start
从根目录运行。- Webapp 将在
localhost:3000
我希望能够以随机方式输入所选电影的电影票,这样它可以选择四张票中的随机类别并输入票号,例如 2
现在我可以通过以这种方式对定位器进行硬编码来填写票证类别 -
cy.get('div.tickets-info > div:nth-child(1) > span > b').type(3,{force:true});
输入Junior Ticket
类别的票数。我希望能够在四个类别中的任何一个类别中随机输入一张票,而无需对类别定位器进行硬编码。
PS - 存储库包含柏树测试也可以使用npm run test
解决方案
您可以根据以下内容随机化类别:
const picked = Math.floor(Math.random()*3); // this gives you a random value from 0 - 3;
// using template string literals - we can add that into picked
cy.get(`div.tickets-info > div:nth-child(`${picked}`) > span > b`).type(3, {force: true})
从picked - 你可以有一个与类别相关的元素数组:
const categories = ["Junior", "student", "normal", "senior"]
您还可以将门票的值categories
作为对象并将其用于计算总数。
const categories = [{
type: "junior",
value: 5
}, {
type: "student",
value: 3
}, {
type: "normal"
value: 10
}, {
type: "senior",
value: 3
}]
你可以说,使用选择的值来计算总金额
const value = categories[picked].value * random_amount;
cy.get(".sum-field label:nth-child(1)").should("contain", value) // total
推荐阅读
- bash - 如何在 Jenkins 上的 pylint 失败(在 Docker 容器中)使步骤失败
- java - MultipartFile#getContentType 在 Spring 的集成测试期间返回 null
- c++ - 如何实现虚拟接口 C++
- java - 复合设计模式能否避免使用集合(List、HashTable)数据结构?
- c# - 无限转轮 Unity2d
- css - 如何使用 css 使 2 个导航重叠
- angular - 当数据来自 API 时,如何设置 mat-select 的默认值?
- xamarin - 如何创建针对特定 android 版本的 xamarin android 项目?
- vbscript - VBscript 错误代码 800A0046 权限被拒绝
- python - 如何根据列值重复熊猫数据框记录