Вы можете разделить содержимое if-else на несколько методов, и если вы хотите избавиться от if-else, то альтернативой является использование оператора switch.См. Код ниже:
public class PublicStaticVoids {
private static WebDriver driver;
private static WebDriverWait wait;
private static void loadThePage(String description, String data) {
Reporter.log(description+"|"+data);
driver.get(data); // Initialize the driver before doing this
if(!TestBase.browserName.equals("Chrome"))
{
driver.manage().window().maximize();
String screenSize = driver.manage().window().getSize().toString();
System.out.println("My screensize is "+screenSize);
}
}
private static void refreshThePage(String description, String data, WebElement elementReference, String referenceValue) {
Reporter.log(description+"|"+data);
moveToElement(elementReference, referenceValue);
findElement(elementReference, referenceValue).click();
findElement(elementReference, referenceValue).clear();
if (description.toLowerCase().contains("request name")||
referenceValue.contains("reqNme")){
String customNum = getDate("requestName");
findElement(elementReference, referenceValue).sendKeys(data+customNum);
System.out.println("Request Name is "+data+customNum);
} else {
findElement(elementReference, referenceValue).sendKeys(data);
}
}
private static void uploadTheFile(String data, WebElement elementReference, String referenceValue) {
File file = new File(data);
String filePath=file.getAbsolutePath();
System.out.println(filePath);
findElement(elementReference, referenceValue).clear();
findElement(elementReference, referenceValue).sendKeys(filePath);
}
private static void uploadTheImage(String description, String data, WebElement elementReference, String referenceValue) {
Reporter.log(description+"||"+data);
uploadImage(elementReference, referenceValue, "Logo", new File(data));
}
private static void waitForVisibility(String data, WebElement elementReference, String referenceValue) {
wait = new WebDriverWait(driver,Long.parseLong(data));
wait.until(ExpectedConditions.visibilityOf(findElement(elementReference, referenceValue)));
}
private static void waitForInVisibility(String data, String referenceValue) {
wait = new WebDriverWait(driver,Long.parseLong(data));
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(referenceValue)));
}
public static void main(String... ali) {
String action = "some action";
switch(action) {
case "Load":
loadThePage("some description", "some data");
break;
case "RefreshPage":
refreshThePage("description", "data", "someValue", "someValue"));
break;
case "uploadFile":
uploadTheFile("someData", "someReference", "some value");
break;
case "uploadImage":
uploadTheImage("description", "data", "Some Reference", "some value");
break;
case "waitELVisibility":
waitForVisibility("data", "some ref", "some value");
break;
case "waitElInvisibility":
waitForInvisibility("data", "some value");
break;
}
}
}
Вы можете использовать эти методы снова, когда хотите, передавая значения в качестве параметров.Если вы не хотите передавать значения в качестве параметров, удалите их, а затем объявите и инициализируйте эти переменные со статическим ключевым словом над методами, и вы сможете использовать его внутри метода позже.
Ниже приведен соответствующий if-else условия для вышеприведенных операторов switch-case:
if(action.equals("Load"))
{
loadThePage("some description", "some data");
}
else if(action.equals("RefreshPage"))
{
refreshThePage("description", "data", "someValue", "someValue"));
}
else if(action.equals("uploadFile"))
{
uploadTheFile("someData", "someReference", "some value");
}
else if(action.equals("uploadImage"))
{
uploadTheImage("description", "data", "Some Reference", "some value");
}
else if(action.equals("waitELVisibility"))
{
waitForVisibility("data", "some ref", "some value");
}
else if(action.equals("waitElInvisibility"))
{
waitForInvisibility("data", "some value");
}
Надеюсь, это поможет ...