Можно ли перегрузить метод щелчка в Selenium с помощью Java для различных локаторов элементов? - PullRequest
0 голосов
/ 12 июня 2018

Возможно ли перегрузить вспомогательные методы для щелчка по элементу на основе типа локатора, такого как xpath, id, css и т. Д.

Я написал такой код

import org.openqa.selenium.By;import org.openqa.selenium.By.ById;

открытый класс AutomationHelper {

public static void clickElement(By xpath){

}
public static void clickElement(By Id){

}

}

Я хотел бы вызвать метод из моего тестового класса следующим образом

AutomationHelper.clickElement (Id);AutomationHelper.clickElement (XPath);и т.д.

Пожалуйста, помогите.Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вам не нужны перегрузки для этого.Вы можете использовать

public static void clickElement(By locator)
{
    driver.findElement(locator).click();
}

Вы можете использовать его с любым типом локатора, например,

By someButton = By.id("buttonId");
By someLink = By.linkText("myLink");
By someDiv = By.xpath("//div[.='containedText']");

и называть его как

clickElement(someButton);
clickElement(someLink);
clickElement(someDiv);
0 голосов
/ 12 июня 2018

Нет

Перегрузка предназначена для отправки различных комбинаций типов данных (один int или один String, или и int иString) к одному методу, но вы отправляете тот же тип данных с разными значениями и думаете, что он будет обрабатываться по-разному;каким-то образом выводя метаданные.

Также в ваших примерах вы отправляете только By , но не отправляете никаких путей.Итак, вы даете методу знать, что он должен интерпретировать что-то как xpath или как строку CSS, но вы на самом деле не отправляете что-то.

Но я думаю, что на самом деле у вас в голове то, что вы 'надеясь, что, отправив строку какого-либо пути, метаданные каким-то образом дадут методу знать, что с ним делать.

Вам необходимо создать несколько методов:

public static void clickElementByXpath(String path) {}
public static void clickElementByCss(String path) {}

или один метод с большим количеством аргументов:

public static void clickElement(String by, String path) {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...