Ich untersuche Selen-Web-Treiber in C#. Ich möchte meinen Test so allgemein wie möglich machen. Was ich will, ist, dass wenn mein Formular geladen wird, alle Textfelder identifiziert und mit einigen Dummy-Daten ausgefüllt werden. Wenn ich die switch-Anweisung wie unten angegeben verwende, ist nur das erste Textfeld ausgefüllt. Wie kann ich es machen alle Felder erhalten und sie eins nach dem anderenSelenium WebDriver Generic Test
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("[email protected]");
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;
}
Wie viele Gesamtfelder haben Sie auf der Seite? –
@GaurangShah Jedes Formular haben unterschiedliche Anzahl von Feldern, aber ich habe insgesamt 8 verschiedene Arten von Feldern – Jawad
Dann ist ein Schalter Fall ist keine gute Idee, sondern erstellen Sie eine Funktion, die alle diese Werte und füllt das Formular. Sie können diese Funktion für jede Seite verwenden und überschreiben. –