【发布时间】:2017-09-22 08:36:44
【问题描述】:
我正在探索 c# 中的 selenium web 驱动程序。我想让我的测试尽可能通用。我想要的是,当我的表单加载时,所有文本字段都被识别并填充了一些虚拟数据。当我使用下面指定的 switch 语句时,仅填充第一个文本字段。我怎样才能让它得到所有的字段并一个一个地填写它们
foreach (var group in form.GroupFormFields)
{
foreach (var field in group.FormFields)
{
var fieldId = "txt_" + field.field_title;
switch (field.field_type_id)
{
case "textfield":
var textfield = Driver.Instance.FindElement(By.XPath("//input[@type='text']"));
textfield.SendKeys("abc");
//field.field_title
//fill the form field
break;
case "email":
var email = Driver.Instance.FindElement(By.XPath("//input[@type='email']"));
email.SendKeys("xyz@gmail.com");
break;
case "password":
var password = Driver.Instance.FindElement(By.XPath("//input[@type='password']"));
password.SendKeys("Abc1234%");
break;
case "checkbox":
var checkbox = Driver.Instance.FindElement(By.XPath("//input[@type='checkbox']"));
checkbox.Click();
break;
default:
break;
}
}
}
【问题讨论】:
-
您的页面总共有多少个字段?
-
@GaurangShah 每个表单都有不同数量的字段但是我总共有 8 种不同类型的字段
-
那么制作一个 switch case 不是一个好主意,而是创建一个函数来获取所有这些值并填写表格。您可以为每个页面使用和覆盖此功能。
标签: c# unit-testing selenium selenium-webdriver automation