I'm trying to read a CSV file containing more than one 'username' and 'password' using java in selenium . But when I execute the code, I'm only able to execute the login and logout functionality of the first user in the CSV file. After that it is showing the following error in the console: My actual requirement is to read all the datas (username and password) in the csv file and login and logout using each one of these usernames and passwords.
*Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with*
Following is my entire code:
package NewCsvPkg;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
//csv reader imports
import java.io.FileReader;
import java.util.Iterator;
import java.util.List;
//import au.com.bytecode.opencsv.CSVReader;
import com.opencsv.CSVReader;
public class NewCsvClass {
public static void main(String[] args) throws Exception {
WebDriver driver = new FirefoxDriver();
String appUrl = "https://accounts.google.com";
driver.get(appUrl);
driver.manage().window().maximize();
//csv reader aswathy -start
CSVReader reader = new CSVReader(new FileReader("/home/user/Documents/UrmilaDocs/CSV PAck/testCSV.csv"));
String [] nextLine;
while ((nextLine = reader.readNext())!= null){
String user_name = nextLine[0];
String pass_word = nextLine[1];
System.out.println("Username: " + user_name);
System.out.println("Password: " + pass_word);
//start
WebElement username = driver.findElement(By.xpath(".//*[@id='Email']"));
username.clear();
username.sendKeys(user_name);
driver.findElement(By.xpath(".//*[@id='next']")).click();
Thread.sleep(5000);
//try
try{
WebElement password = driver.findElement(By.xpath(".//*[@id='Passwd']"));
password.clear();
password.sendKeys( pass_word);
driver.findElement(By.xpath(".//*[@id='signIn']")).click();
Thread.sleep(8000);
System.out.println("Login Success");
//click on 'Google Apps' icon
driver.findElement(By.xpath(".//*[@id='gbwa']/div[1]/a")).click();
Thread.sleep(10000);
//Click on 'Gmail' icon to navigate to inbox page
driver.findElement(By.xpath(".//*[@id='gb23']/span[1]")).click();
Thread.sleep(10000);
//Click on user name first letter circle icon
driver.findElement(By.xpath(".//*[@id='gb']/div[1]/div[1]/div[2]/div[4]/div[1]/a/span")).click();
Thread.sleep(3000);
//click on 'Signout' button
driver.findElement(By.xpath(".//*[@id='gb_71']")).click();
Thread.sleep(5000);
System.out.println("Logout Success");
}// try closed
//catch exception
catch(Exception e)
{
System.out.println("Login failed!");
}// catch closed
// //closing driver & firefox
driver.close();
//end
}//while end
//csv reader end
System.exit(0); //closing firefox
}
}
While executing, following exception is shown: Username: testuser01.zyx Password: testuser0123 Login Success Logout Success Username: testuser07 Password: user0123 Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Command duration or timeout: 23 milliseconds Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33' System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-37-generic-pae', java.version: '1.7.0_95' Session ID: 52ade752-04da-4a5e-baf5-5bcdf98a2434 Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=43.0}] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) at org.openqa.selenium.remote.RemoteWebElement.clear(RemoteWebElement.java:140) at NewCsvPkg.NewCsvClass.main(NewCsvClass.java:54) Caused by: org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33' System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-37-generic-pae', java.version: '1.7.0_95' Driver info: driver.version: unknown at .fxdriver.preconditions.visible(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:10045) at .DelayedCommand.prototype.checkPreconditions_(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12597) at .DelayedCommand.prototype.executeInternal_/h(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12614) at .DelayedCommand.prototype.executeInternal_(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12619) at .DelayedCommand.prototype.execute/<(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12561)