首页 > 解决方案 > 如何根据 Selenium(C#)中的用户类型通过 SWITCH 验证各种选项

问题描述

我正在使用 -在NUnit框架上使用Selenium(C#) ,并且我正在尝试验证我的测试中的一个条件,该条件根据已登录的用户向用户提供不同的选项(如下所述) -

  1. User1 --个人账户企业账户
  2. User2 --个人账户企业账户零售账户
  3. 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是验证这一点的最佳方式吗?任何帮助表示赞赏。

谢谢

标签: c#seleniumswitch-statementnunit

解决方案


取决于您将如何实现 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。


推荐阅读