Я пытаюсь получить данные из базы данных Access и использовать эти значения в моем сценарии selenium, но почему-то я не могу этого сделать. Хотя мне удалось успешно подключиться к базы данных и распечатать значения в консоли. Я не могу использовать те же значения в скрипте. Это код, который я использовал. Пожалуйста, дайте мне знать, я ошибаюсь.Ошибка «Недопустимое состояние курсора» при чтении из базы данных
package AccessDB;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
public class Sample_Access_DB_Test {
public static WebDriver driver;
public static String dbLocation;
public static Connection con;
public static Statement smt;
public static ResultSet rs;
@Test
public void f() throws Exception {
//Database Location
dbLocation = "D:\\AccessDB's\\Userinfor1.accdb";
//Connecting to the Database
con = DriverManager.getConnection("jdbc:odbc:ADB");
System.out.println("Connection Establised Successfully");
//Creating DB statement
smt = con.createStatement();
System.out.println("Statement Successfully Created");
//Executing Created Statement
rs = smt.executeQuery("Select * from Userinfor1");
System.out.println("Query Executed");
while(rs.next()){
System.out.println(rs.getString(2));
//System.out.println(rs.getString(3));
//System.out.println(rs.getString(4));
}
driver.findElement(By.id("login-username")).sendKeys(rs.getString(2));
/*
driver.findElement(By.id("login-username")).sendKeys("gopi_krishna28");
driver.findElement(By.id("login-passwd")).sendKeys("gopikrishna28");
driver.findElement(By.id("login-signin")).click();*/
}
@BeforeTest
public void beforeTest() {
driver = new FirefoxDriver();
driver.get("http://www.yahoomail.com/");
}
@AfterTest
public void afterTest() {
}
}
и это ошибка, которая выбрасывается
java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Invalid состояние курсора
hmm okey ... Я попробовал другой способ ... ну, это вроде работа, но не полностью. Я заменяю оператор while оператором if if (rs.next()) {\t driver.findElement (By.id (rs.getString (2))). sendKeys (rs.getString (3)); \t \t driver.findElement (By.id (rs.getString (4))). SendKeys (rs.getString (5)); \t \t }, но дело здесь в его единственном доступе к столбцам, а не к строкам .. как я могу получить доступ к строкам? любая идея по этому поводу? – user1856470
@ user1856470 - Я обновил свой ответ. –