c# - 如何根据 Selenium(C#)中的用户类型通过 SWITCH 验证各种选项
问题描述
我正在使用 -在NUnit框架上使用Selenium(C#) ,并且我正在尝试验证我的测试中的一个条件,该条件根据已登录的用户向用户提供不同的选项(如下所述) -
- User1 --个人账户和企业账户
- User2 --个人账户、企业账户和零售账户
- User3 -企业账户、批发账户、零售账户和个人账户
我要测试的代码是这样的-->
<div class="ng-star-inserted">
<!----><div class="row ng-star-inserted">
<div class="col-md-12">
<button class="btn w-btn-teleport-alt" id="account-type-btn-{idx}"
type="button">
Retail Account
</button>
</div>
</div><div class="row ng-star-inserted">
<div class="col-md-12">
<button class="btn w-btn-teleport-alt" id="account-type-btn-{idx}"
type="button">
Business Account
</button>
</div>
</div><div class="row ng-star-inserted">
<div class="col-md-12">
<button class="btn w-btn-teleport-alt" id="account-type-btn-{idx}"
type="button">
Consumer Account
</button>
</div>
</div><div class="row ng-star-inserted">
<div class="col-md-12">
<button class="btn w-btn-teleport-alt" id="account-type-btn-{idx}"
type="button">
Wholesale Account
</button>
</div>
</div><div class="row ng-star-inserted">
<div class="col-md-12">
<button class="btn w-btn-teleport-alt" id="account-type-btn-{idx}"
type="button">
General Account
</button>
</div>
</div>
</div>
验证这一点的最佳方法是什么,以便根据登录的用户(由 app.config 驱动),我应该能够验证存在的正确按钮。
SWITCH是验证这一点的最佳方式吗?任何帮助表示赞赏。
谢谢
解决方案
取决于您将如何实现 switch 语句,我实际上没有看到不使用 SWITCH 的原因。那是 sed,没有开关:
取决于您的自动化解决方案是如何制作的,但我很快在我的解决方案中做了一个示例(我使用https://bitbucket.org/mk_meros/webautomation/wiki/Home作为 selenium 的框架)
在我的解决方案中,我会这样做:
Xpath: //button[text()='{0}']
[When(@"I can see buttons:")]
[Then(@"I can see buttons:")]
public void ICanSeeButtons(Table table)
{
foreach (var row in table.Rows)
{
var buttonValue = row["buttons"];
var field = this.Page.ButtonByText.With(buttonValue);
field.Assert.Is.Displayed();
}
}
该解决方案将是通用的,但它需要为不同的用户分别进行三个测试。另外我建议在同一个测试中检查 NotDisplayed。
推荐阅读
- python - 无法导入 python 模块?
- javascript - 将回调转换为承诺的问题
- python - PyCharm 找不到 virtualenv 解释器
- javascript - 使用另一台电脑登录另一个不同的帐户后,当前的 PHP SESSION 被替换
- python - 基于“是”或“否”响应重复的硬币翻转程序
- php - 将字符串声明转换为特征中的成员
- php - 如何执行条件查询
- python - 通过 python Requests 或 urllib 发送 Soap 1.1 请求
- c++ - 在(未)定义(非)默认构造函数时声明类的对象数组?
- linux - 查找具有条件的最大文件并将其复制到特定目录