Почему я не могу вернуть значение в методе в селене? - PullRequest
0 голосов
/ 14 февраля 2019

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

Это скрипт, который вызывает метод.

  GetExcel res = new GetExcel();
	String maker = res.getExcel("IS Maker Username");
	GetExcel res1 = new GetExcel();
	String passMaker = res1.getExcel("IS Maker Password");
	WebDriverWait wait = new WebDriverWait(driver, 20);
	wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='userName']")));
	driver.findElement(By.xpath("//input[@name='userName']")).click();
	driver.findElement(By.xpath("//input[@name='userName']")).sendKeys(maker);
	driver.findElement(By.xpath("//input[@name='password']")).click();
	driver.findElement(By.xpath("//input[@name='password']")).sendKeys(passMaker);
	driver.findElement(By.name("submitLogin")).click();		

Это функция метода

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.testng.annotations.Test;
@Test
public class GetExcel {
	
	private XSSFWorkbook wb;
	
	public String getExcel(String getName) throws IOException {
		
		File src = new File("C:\\selenium\\ExcelData\\TestData.xlsx");
		FileInputStream fis = new FileInputStream(src);
		wb = new XSSFWorkbook(fis);
		XSSFSheet sh1 = wb.getSheetAt(0);
	
		String getValue = null;
		String value = null;
		for (int i = 1; i<=1000; i++) {
			if(sh1.getRow(i).getCell(0) != null)
			{
				 getValue = sh1.getRow(i).getCell(0).getStringCellValue();
			}
	    	
	    	if(getValue != null) {
	    		if(getValue.contains(getName)) {
	    			if(sh1.getRow(i).getCell(1) != null)
	    			{
	    				 value = sh1.getRow(i).getCell(1).getStringCellValue();
	    			}
	        		System.out.println(value);
	        		fis.close();
	        		break;
	        	} 	
	    	}	
	    	
	    }
		return value;
		
		
		
	}

}  

Функция метода была импортирована из разных пакетов

1 Ответ

0 голосов
/ 14 февраля 2019

1.Ваш код всегда будет возвращать нулевое значение, потому что вы сравниваете значение ячейки с именем Excel sheet_Name.

2.При возвращении значения во второй столбец оно не должно быть пустым.

3. Если вы пытаетесь получить любое значение, которое является числом, вы должны поставить 'перед числом в ячейке, как '12345

Изменен ваш код Теперь попробуйте.

public String getExcel(String getName) throws IOException {

    File src = new File("C:\\selenium\\ExcelData\\TestData.xlsx");
    FileInputStream fis = new FileInputStream(src);
    wb = new XSSFWorkbook(fis);
    XSSFSheet sh1 = wb.getSheet(getName);

    String getValue = null;
    String value = null;
    int number=sh1.getLastRowNum()+1;
    System.out.println("Total used rows :" + number);
    for (int i = 1; i<number; i++) {
        if(sh1.getRow(i).getCell(0) != null)
        {
             getValue = sh1.getRow(i).getCell(0).getStringCellValue();
        }

        if(getValue != null) {
            if(!getValue.contains(getName)) {
                if(sh1.getRow(i).getCell(1) != null)
                {
                     value = sh1.getRow(i).getCell(1).getStringCellValue();
                }
                System.out.println(value);
                fis.close();
                break;
            }   
        }   

    }
    return value;



}

Вот основной вызов функции.

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        GetExcel res = new GetExcel();
        String maker = res.getExcel("IS Maker Username");
        System.out.println("User :" + maker);
        GetExcel res1 = new GetExcel();
        String passMaker = res1.getExcel("IS Maker Password");
        System.out.println("Password :" + passMaker);
    }

Пожалуйста, дайте мне знать, работает ли он для вас.

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