簡體   English   中英

無法將參數從一個類方法調用到另一個類方法

[英]Unable to call the parameters from one class-method to another class-method

我嘗試使用下面的代碼有兩個類,一次是 Class1-TestData 和 Method1-excel(),另一個調用是訪問參數 Class2-AdminLoginAction 和 Method2-Admin_Login()。

這是我需要調用字符串參數(如我在隨附的屏幕截圖中標記的 UID 和 PWD)的問題。 但是腳本顯示了一些錯誤並且無法訪問它。 那么,我該如何解決這個問題,我是采用正確的方法還是采用其他任何方式? 請盡快完成需要。

兩個類的腳本圖像

import java.io.IOException; 
import java.util.Date;

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.testng.annotations.*;

import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.ExtentTest;
import com.aventstack.extentreports.Status;

import com.aventstack.extentreports.reporter.ExtentSparkReporter;

public class AdminLoginAction extends TestData{

WebDriver d;
Date currentdate = new Date();
String Screenshotdate = currentdate.toString().replace(" ", "-").replace(":", "-");
ExtentSparkReporter spark = new ExtentSparkReporter("ExtentReport.html");
ExtentReports extent = new ExtentReports();
@Test()
public void Admin_Login() throws InterruptedException, IOException {
    TestData excel = new TestData();
    
    extent.attachReporter(spark);
    ExtentTest test = extent.createTest("Launch browswer and access the WeClean Login page");
    test.log(Status.PASS, "Launch browser success...!!!");
    test.pass("Verified launching browser");
    System.setProperty("webdriver.chrome.driver", "D:\\backup\\selenium\\chromedriver.exe");
    d = new ChromeDriver();
    d.manage().window().maximize();
    d.get(URL);
    Utils.CaptureScreenshot(d, Screenshotdate + "_Login.png");
    d.findElement(By.id("loginUser")).sendKeys(UID);
    d.findElement(By.id("password")).sendKeys(PWD);
    d.findElement(By.id("loginButton")).click();
    Thread.sleep(5000);
    Utils.CaptureScreenshot(d, Screenshotdate + "_HomePage.png");
    test.log(Status.PASS, "Admin Logged in Successful");
    test.pass("Verified Admin logged in");
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.testng.annotations.Test;

public class TestData{
    public void excel() throws IOException {
     String filePath = System.getProperty("user.dir")+"\\Inputfiles";
     File file =    new File(filePath + "\\TestData.xlsx");
     FileInputStream inputStream = new FileInputStream(file);
     XSSFWorkbook wb=new XSSFWorkbook(inputStream);
     XSSFSheet sheet=wb.getSheet("Admin_inputs");
     XSSFRow row2=sheet.getRow(1);
     XSSFCell cell=row2.getCell(0);
     double UID= cell.getNumericCellValue();
     XSSFCell cell2 = row2.getCell(1);
     String PWD = cell2.getStringCellValue();
    }

你可以這樣嘗試:

public class TestData {
    double UID;
    String PWD;
    
    public void excel() throws IOException {
        String filePath = System.getProperty("user.dir") + "\\Inputfiles";
        File file = new File(filePath + "\\TestData.xlsx");
        FileInputStream inputStream = new FileInputStream(file);
        XSSFWorkbook wb = new XSSFWorkbook(inputStream);
        XSSFSheet sheet = wb.getSheet("Admin_inputs");
        XSSFRow row2 = sheet.getRow(1);
        XSSFCell cell = row2.getCell(0);
        UID = cell.getNumericCellValue();
        XSSFCell cell2 = row2.getCell(1);
        PWD = cell2.getStringCellValue();
    }
}

Admin_Login()方法中,我只是打印UIDPWD ,根據您的要求更改代碼:

public class AdminLoginAction extends TestData {
    @Test()
    public void Admin_Login() throws InterruptedException, IOException {
        // TestData excel = new TestData();  // you don't need to create this object because you are already inheriting `TestData` class.

        excel();  // before using UID and PWD you have to call excel() method.
        System.out.println(UID);
        System.out.println(PWD);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM