Wie zu Lesen mehrerer Benutzernamen und Passwort von excel mit Selen

public static void main(String args[]) throws IOException, JXLException, BiffException, FileNotFoundException, InterruptedException { 

    System.setProperty("webdriver.chrome.driver","C:\\Users\\yirsh\\Desktop\\Selenium\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();

    Sheet s;

    FileInputStream fi = new FileInputStream("C:\\Users\\yirsh\\Desktop\\UAT WEBSHOP.xls");
    Workbook w = Workbook.getWorkbook(fi);
    s = w.getSheet(1);
    int z = s.getRows();
    System.out.println("no of Users:"+z);
    driver.get("http://[email protected]/path/");
    driver.manage().window().maximize();
    //Thread.sleep(10000);
    for(int row = 1; row < 6; row++)
    {
        String username = s.getCell(2, 1).getContents();
        System.out.println("Username: "+username);
        driver.findElement(By.id("j_username_leftAside")).sendKeys(username);

        String password = s.getCell(3, 1).getContents();
        System.out.println("Password: "+password);
        driver.findElement(By.id("j_password_leftAside")).sendKeys(password);

        driver.findElement(By.xpath("/html[@class=' js opacity generatedcontent pointerevents']/body[@class='page-homepage pageType-ContentPage template-pages-layout-RexelHomePageLayout pageLabel-homepage language-de ']/div[@id='page']/div[@id='content']/div[@id='content']/div[@class='content-top-inner']/div[@id='content-inner']/div[@class='mid-wrapper'][1]/div[@class='yCmsContentSlot']/div[@class='login clear']/form[@id='loginForm']/div[@class='left sign-in']/button[@class='Sign-in rx-btn mb0']")).click();

        if(driver.getPageSource().contains("Willkommen"))
        {
            System.out.println("Login Sucessfull");     
        }
        else
        {
            System.out.println("Login Failed");
        }

        driver.quit();
    }
}

Habe ich mehr als 10 Benutzer-Anmeldeinformationen, aber der code liest nur ein Benutzer Anmeldeinformationen und Ausfahrten bitte korrigieren Sie den code, wie pro mein Bedürfnis.Wie ich bin neu für die Kodierung bisschen verwirrt von der (int row = 1; row < 6; row++) mich korrigieren, der genaue code

  • Selen kann nicht Lesen, Excel -, aber apache-poi kann. Bitte korrigieren Sie Ihre tags.



2 Replies
  1. 1

    Wenn die Anmeldung erfolgreich ist, müssen Sie schreiben logout-code (ich habe einen Kommentar). Auch, Sie brauchen, um machen verwenden der Zeile Variable. Auch, setzen driver.quit() außerhalb der for-Schleife.

    public static void main(String args[]) throws IOException, JXLException,BiffException,FileNotFoundException, InterruptedException{ 
        System.setProperty("webdriver.chrome.driver","C:\\Users\\yirsh\\Desktop\\Selenium\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
    
        Sheet s;
    
        FileInputStream fi = new FileInputStream("C:\\Users\\yirsh\\Desktop\\UAT WEBSHOP.xls");
        Workbook w = Workbook.getWorkbook(fi);
        s = w.getSheet(1);
        int z=s.getRows();
        System.out.println("no of Users:"+z);
        driver.get("http://RexelQAEnv:[email protected]/aus/");
        driver.manage().window().maximize();
        //Thread.sleep(10000);
    
        for(int row=1; row <= 10; row++)
        {
    
            String username = s.getCell(2,row).getContents();
            System.out.println("Username: "+username);
            driver.findElement(By.id("j_username_leftAside")).sendKeys(username);
    
            String password= s.getCell(3,row).getContents();
            System.out.println("Password: "+password);
            driver.findElement(By.id("j_password_leftAside")).sendKeys(password);
    
            driver.findElement(By.xpath("/html[@class=' js opacity generatedcontent pointerevents']/body[@class='page-homepage pageType-ContentPage template-pages-layout-RexelHomePageLayout pageLabel-homepage language-de ']/div[@id='page']/div[@id='content']/div[@id='content']/div[@class='content-top-inner']/div[@id='content-inner']/div[@class='mid-wrapper'][1]/div[@class='yCmsContentSlot']/div[@class='login clear']/form[@id='loginForm']/div[@class='left sign-in']/button[@class='Sign-in rx-btn mb0']")).click();
    
            if(driver.getPageSource().contains("Willkommen"))
            {
                System.out.println("Login Sucessfull");
                //write code for logout
            }
            else
            {
            System.out.println("Login Failed");
            }
    
    
         }
          driver.quit();
        }
    
    • Danke funktioniert Prima, aber ich brauche, um auszuführen, wenn der Nutzer bestanden hat oder nicht.Es sollte drucken Sie die pass-oder fail-Nachricht und sollte halten Sie auf ausführen alle Benutzer
    • wie funktioniert es aktuell?
    • in seiner Lesung das 1. Benutzer-Anmeldeinformationen und drucken das Ergebnis anschließend liest es die FSME 2. Benutzername nur und immer die unter „errorException in thread „main“ org.openqa.Selen.NoSuchSessionException: die Session-ID ist null. Mit WebDriver nach Aufruf beenden()?“
    • Benutzername: fullrightsuser1 Passwort: 1234567 Login Fehlgeschlagen ********************************************** Benutzername: adminuser1 Exception in thread „main“ org.openqa.Selen.NoSuchSessionException: die Session-ID ist null. Mit WebDriver nach Aufruf beenden()? Build info: version: ‚3.5.3‘, revision: ‚a88d25fe6b‘, time: ‚2017-08-29T12:54:15.039 Z‘
  2. 0

    Meine Vermutung ist, dass obwohl Sie Inkrementieren eines row variable, die Sie nicht verwenden Sie Sie, wo Sie sollten:

    Sheet s;
    //...
    for(int row=1; row < 6; row++) {
        String username = s.getCell(2,1).getContents();
    

    Unter der Annahme, dass s ist ein jxl.Sheet der zweite parameter der getCell Methode ist die Nummer der Zeile, die Sie interessiert sind in.

    So möchten Sie vielleicht zu nennen s.getCell(2, row) es, da haben Sie die Nummer der Zeile in Ihrem row variable.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.