交互我試圖讀取包含多個「用戶名」和「密碼」的CSV文件Java中的硒。但是當我執行代碼時,我只能在CSV文件中執行第一個用戶的登錄和註銷功能。之後,它在控制檯中顯示以下錯誤: 我的實際要求是讀取csv文件中的所有數據(用戶名和密碼),並使用這些用戶名和密碼中的每一個登錄和註銷。線程「main」中的異常org.openqa.selenium.ElementNotVisibleException:元素當前不可見,因此可能不會與
*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
}
}
在執行,以下異常顯示:用戶名: testuser01.zyx密碼:testuser0123登錄成功退出成功 用戶名:密碼testuser07:user0123異常線程 「main」 org.openqa.selenium。 ElementNotVisibleException:元素不是 當前可見,因此可能不與命令持續時間 或超時:23毫秒交互構建信息:版本:'2.52.0',修訂版本: '4c2593c',時間:'2016-02-11 19 :03:33'系統信息:host:'localhost', ip:'127.0.0.1',os.name:'Linux',os.arc h:'i386',os.version: '3.2.0-37-generic-pae',java.version:'1.7.0_95'會話ID: 52ade752-04da-4a5e-baf5-5bcdf98a2434驅動程序信息: org .openqa.selenium.firefox.FirefoxDriver功能 [{platform = LINUX,acceptSslCerts = true,javascriptEnabled = true, cssSelectorsEnabled = true,databaseEnabled = true,browserName = firefox, handlesAlerts = true,nativeEvents = false,webStorageEnabled = true, 旋轉=假,locationContextEnabled =真, applicationCacheEnabled =真,takesScreenshot =真,版本= 43.0}]在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAc cessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.openqa.selenium。 remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver。的java:678) 在 org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) 在 org.openqa.selenium.remote.RemoteWebElement.clear(R emoteWebElement.java:140) 在NewCsvPkg.NewCsvClass.main(NewCsvClass.java:54)產生的原因: org.openqa.selenium.ElementNotVisibleException:元素不 目前可見的,所以可能不會生成信息進行交互: 版本:'2.52.0',修訂:'4c2593c',時間:'2016-02-11 19:03:33' 系統信息: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/[email protected]/components/command-processor.js:10045) at .DelayedCommand.prototype.checkPreconditions_(file:/// tmp/anonymous8352270443321158650webdriver -profile/EXT ensions/[email protected]/components/command-processor.js:12597) at .DelayedCommand.prototype.executeInternal_/h(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/[email protected]/components/命令處理器。js:12614) at .DelayedCommand.prototype.executeInternal_(file:///tmp/anonymous8352270443321158650webdriver-profile/extensions/[email protected]/components/command-processor.js:12619) at .DelayedCommand.prototype.execute/<(文件:///tmp/anonymous8352270443321158650webdriver-profile/extensions/[email protected]/components/command-processor.js:12561)
你從哪裏得到異常? – Guy
@Guy:請看看我上面編輯的問題。我已指定在應用程序運行時在控制檯中顯示的內容 – Ganga