Невозможно получить метод через Reflection - PullRequest
0 голосов
/ 28 января 2019

Хотелось бы получить помощь от экспертов здесь.Я получаю следующую ошибку:

enter image description here

Ниже приведен мой код:

public void MainMenu_Gold(WebDriver driver, String browser, String method ,String Xpath, String Amount, String TFA, String Code, String Cancel, String OK) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException, InterruptedException{

    Class[] arg = new Class[12];
    arg[0] = WebDriver.class;
    arg[1] = String.class;      
    arg[2] = String.class;  
    arg[3] = String.class;
    arg[4] = String.class;
    arg[5] = String.class;  
    arg[6] = String.class;  
    arg[7] = String.class;    
    arg[8] = String.class;
    arg[9] = String.class;
    arg[10] = String.class;
    arg[11] = String.class;
    Class<?> cls = Class.forName(browser); 
    Object obj = cls.newInstance(); 
    Thread.sleep(10000);
    driver.findElement(By.xpath("//*[@id='nav_collapse']/ul/li[1]/a")).click();
    Thread.sleep(10000);
    driver.findElement(By.linkText("Reload Now")).click();
    points_before_Str = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[1]/div/div/div[2]/div/span[1]")).getText(); // get the points detail before reload    
    Convert_Points_Str_Dou(points_before_Str);//call the method to convert String to Double
    Points_Before = points_before_String;
    balance_before_Str = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[1]/div/div/div[2]/div/span[2]")).getText(); //get the monetary value before reload
    Convert_Balance_Str_Dou(balance_before_Str);    
    Thread.sleep(10000);
    driver.findElement(By.xpath(Xpath)).click();
    //driver.findElement(By.cssSelector("img[@alt='Hong Leong Connect']")).click();
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    jse.executeScript("window.scrollBy(0,500)", "");
    Thread.sleep(5000);

    driver.findElement(By.xpath("//*[@id='amount']")).sendKeys(Amount); //Assume minimum amount is met.     
    //Text_Not_Enough = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[3]/div[2]/div[1]/div/p[2]")).getText();  
    driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[3]/div[2]/div[2]/div[2]/div/a")).click();//click on Next after key in amount
    Thread.sleep(5000);
    driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[3]/div[2]/div[2]/div/div/div/div/div[2]/div/span/a[1]")).click(); // Choose backup code option
    System.out.println("Code = " + Code);
    driver.findElement(By.xpath("//*[@id='code']")).sendKeys(Code);//key in backup code
    driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div/div[3]/div[2]/div[3]/div[2]/div[2]/button")).click();
    //At this point, directing to payment channle 3rd party side
    Thread.sleep(10000);
    driver.findElement(By.xpath(Cancel)).click(); //Click on cancel button on 3rd part payment page
    driver.findElement(By.xpath(OK)).click();//Click on OK Button to return to confirm Cancel
    Thread.sleep(20000);
    Reload_Pending = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div[1]/div/h4")).getText();  
    Points_After = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div[3]/div/div/div[1]/div/div[2]/div/span[1]")).getText();
    Balance_After = driver.findElement(By.xpath("//*[@id='main']/body/div[1]/main/div/div[3]/div/div/div[1]/div/div[2]/div/span[2]")).getText();
    System.out.println("Before Method methos1, method = " + method);
    Method method1 = cls.getMethod(method, arg[0], arg[1], arg[2],arg[3],arg[4],arg[5],arg[6],arg[7],arg[8],arg[9],arg[10],arg[11]);        
    method1.invoke(obj, driver, browser, Xpath, Amount, TFA, Code, Cancel, OK, Points_Before, Reload_Pending, Points_After);
 }  

Проблема возникла на втором местестрока кода, где возникает ошибка.Рассматриваемый метод находится в другом классе, и то, что пытается сделать эта строка, - это в основном возврат к основному классу (TC_PaymentChannel_FF.java), который вызывает этот класс (там, где находится приведенный выше код), и запускает метод (VerifyPaymentChannel) в этомОсновной класс.

Надеюсь получить совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...