2017-03-01 1 views
0

Fehler:Ich versuche, Daten aus Excel-Tabelle zu erhalten und diese Testdaten in das Login & Passwort-Feld passieren, aber ich bin immer folgende Fehler

FAILED: cptoadsLogin org.testng.TestNGException: The data provider is trying to pass 2 parameters but the method com.toads.Script.LoginDemo#cptoadsLogin takes 0 at org.testng.internal.Invoker.injectParameters(Invoker.java:1225) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1118) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) at org.testng.TestRunner.privateRun(TestRunner.java:774) at org.testng.TestRunner.run(TestRunner.java:624) at org.testng.SuiteRunner.runTest(SuiteRunner.java:359) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) at org.testng.SuiteRunner.run(SuiteRunner.java:261) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) at org.testng.TestNG.run(TestNG.java:1048) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)

Seite Objekt:

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.support.FindBy; 
import org.openqa.selenium.support.How; 
import org.openqa.selenium.support.PageFactory; 

public class ToadsLogin { 

    @FindBy(how=How.XPATH,using="//input[@id='Username']") 
    WebElement username; 

    @FindBy(how=How.XPATH,using="//input[@id='Password']") 
    WebElement password; 

    @FindBy(how=How.XPATH,using="//button") 
    WebElement loginbtn; 

    public ToadsLogin(WebDriver driver) 
    { 
     PageFactory.initElements(driver, this); 
    } 

    public void unpwd(String un,String pwd) 
    { 
     username.sendKeys("un"); 
     password.sendKeys("pwd"); 
    } 

    public void clikonLogin() 
    { 
     loginbtn.click(); 
    } 
} 

TestNG Script:

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

import com.toads.PoM.ToadsLogin; 
import com.toads.lib.ExcelDataConfig; 

public class LoginDemo extends SuperTestNG { 

    @Test(dataProvider="toadsLogin") 
    public void cptoadsLogin() throws Exception 
    { 
     ToadsLogin tlogin=new ToadsLogin(driver); 
     tlogin.unpwd("un", "pwd"); 
     tlogin.clikonLogin(); 
     Thread.sleep(5000); 
     driver.close(); 
    } 


    @DataProvider(name="toadsLogin") 
    public Object[][] cpToadsLogin() 
    { 
     ExcelDataConfig config=new ExcelDataConfig("D:\\login.xlsx"); 
     int rows=config.getRowCount(0); 


     Object[][] data1= new Object[rows][2]; 
     for(int i=0;i<rows;i++) 
     { 
      data1[i][0]=config.getData(0, i, 0); 
      data1[i][1]=config.getData(0, i, 1); 

     } 
     return data1; 
    } 

} 

Antwort

3

Die dataProvider erwartet Methode cptoadsLogin, um Parameter zu erhalten.

The data provider is trying to pass 2 parameters but the method cptoadsLogin takes 0

Sie müssen die Methodensignatur ändern 2 Parameter müssen erhalten

@Test(dataProvider = "toadsLogin") 
public void cptoadsLogin(String user, String pwd) throws Exception 
{ 
    ToadsLogin tlogin=new ToadsLogin(driver); 
    tlogin.unpwd(user, pwd); 
    tlogin.clikonLogin(); 
    Thread.sleep(5000); 
    driver.close(); 
} 

user den Wert von data1[i][0] und pwd den Wert von data1[i][1]

+0

Dank haben .... aber seine funktioniert auch nicht, es nimmt den Benutzernamen als un und das Passwort als pwd.it nimmt keine Daten für Excel Sheet –

+1

@RakeshKumar Weil das ist, was Sie dort 'tlogin.unpwd (" un "," pwd ");' Wenn Sie Zauberstab verschiedene Werte müssen Sie ändern. – Guy

+0

Das ist, was ich habe keine Ahnung, wo genau ich das Skript ändern muss, um die Daten von Excel zu ziehen. Funktioniert gut, während ich nicht mit POM, aber mit Pom bin ich mit diesem Problem mit datengesteuerten Tests konfrontiert –

Verwandte Themen