Я новичок в селене, я застрял в конкретной ситуации с кодом. Я пытаюсь написать общий код для флажков, как показано ниже.
public void CheckBox(By by, String element)
{
driver.findElement(By.by(""));
}
Приведенный выше общий код, который позже можно будет использовать в тестах. Где пользователь будет использовать эту функцию, передаст элемент и то, что ему нужно для поиска. (по Xpath, идентификатору или имени и т. д.)
Я могу написать if_else или Switch, но это будет слишком много кода, есть ли способ использовать прямой параметр с По объекту или есть другой способ сделать это. Помощь приветствуется.




findElement получает By как параметр
public void CheckBox(By by)
{
driver.findElement(by);
}
И назовите это так
CheckBox(By.id("id")); // or any other locator
public void CheckBox(By by, String element) {
driver.findElement(by).sendKeys(element);
}
теперь вы можете вызвать этот метод CheckBox в коде @Test
@Test
public void fillLoginDetails() {
CheckBox(By.id("ap_customer_name"),"bonn");
CheckBox(By.id("ap_email"),"[email protected]");
CheckBox(By.name("password"),"bo123456");
CheckBox(By.id("ap_password_check"),"bon123456");
}
@ajinkyaJahagirdar да, это возможно. public void CheckBox (String cam, String value) {driver.findElement (By.id (cam)). sendKeys (value); } и тестовый код - CheckBox ("ap_email", "[email protected]");
ajinkya Проверьте ответ @Guy на ваше требование.
Привет, Рамана, Ваш ответ хорош, и он сработал, но мне было интересно, возможно ли это, я имею в виду, что в тесте я просто хочу передать, тип и идентификатор элемента (значение), например: PageObject po = new PageObject (driver ); po.CheckBox (идентификатор, элемент); Могу я сделать это, я хочу, чтобы это было просто и менее сложно для тех, кто пишет автоматизацию тестирования.