Как использовать By.parameter в Java-коде Selenium?

Я новичок в селене, я застрял в конкретной ситуации с кодом. Я пытаюсь написать общий код для флажков, как показано ниже.

public void CheckBox(By by, String element)
{
    driver.findElement(By.by(""));
}

Приведенный выше общий код, который позже можно будет использовать в тестах. Где пользователь будет использовать эту функцию, передаст элемент и то, что ему нужно для поиска. (по Xpath, идентификатору или имени и т. д.)

Я могу написать if_else или Switch, но это будет слишком много кода, есть ли способ использовать прямой параметр с По объекту или есть другой способ сделать это. Помощь приветствуется.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
501
2

Ответы 2

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");
  }

Привет, Рамана, Ваш ответ хорош, и он сработал, но мне было интересно, возможно ли это, я имею в виду, что в тесте я просто хочу передать, тип и идентификатор элемента (значение), например: PageObject po = new PageObject (driver ); po.CheckBox (идентификатор, элемент); Могу я сделать это, я хочу, чтобы это было просто и менее сложно для тех, кто пишет автоматизацию тестирования.

ajinkya Jahagirdar 08.08.2018 13:53

@ajinkyaJahagirdar да, это возможно. public void CheckBox (String cam, String value) {driver.findElement (By.id (cam)). sendKeys (value); } и тестовый код - CheckBox ("ap_email", "[email protected]");

RamanaMuttana 08.08.2018 14:02

ajinkya Проверьте ответ @Guy на ваше требование.

Shivam Mishra 08.08.2018 14:05

Другие вопросы по теме