2016-12-28 1 views
-2

Wenn ich diesen Testfall von Selen Web-Treiber betreibe ich den unten Fehlermeldung anzeigt:Keine passenden Treiber für jdbc gefunden: oracle: thin:

java.sql.SQLException: Keine passenden Treiber für jdbc gefunden: oracle: thin : @ 10.96.0.65: 1521: orcl bei java.sql.DriverManager.getConnection (DriverManager.java:602) bei java.sql.DriverManager.getConnection (DriverManager.java:185) bei Database.DatabaseValidation.test (DatabaseValidation .java-: 50) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) bei sun.reflect.DelegatingMethodAccessorImpl.invo ke (DelegatingMethodAccessorImpl.java:25) bei java.lang.reflect.Method.invoke (Methode.java:597) bei org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:47) bei org .junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) bei org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:44) bei org.junit.internal.runners.statements .InvokeMethod.evaluate (InvokeMethod.java:17) bei org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:26) bei org.junit.internal.runners.statements.RunAfters.evaluate (RunAfters .java: 27) bei org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:271) bei org.junit.runners.BlockJUnit4ClassRu nner.runChild (BlockJUnit4ClassRunner.java:70) bei org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:50) bei org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:238) bei org .junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:63) bei org.junit.runners.ParentRunner.runChildren (ParentRunner.java:236) bei org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java : 53) bei org.junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:229) bei org.junit.runners.ParentRunner.run (ParentRunner.java:309) bei org.eclipse.jdt.internal. junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:50) bei org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:467) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:683) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:390) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:197)

package Database; 

import oracle.jdbc.*; 
import static org.junit.Assert.*; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 
import oracle.jdbc.driver.*; 
import java.sql.PreparedStatement; 
import java.util.concurrent.TimeUnit; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.NoSuchElementException; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.firefox.FirefoxProfile; 
import org.openqa.selenium.firefox.internal.ProfilesIni; 

public class DatabaseValidation { 

private WebDriver driver = null; 
private Connection con = null; 
private Statement stmt = null; 
String baseUrl; 

@Before 
public void setUp() throws Exception { 
// use firefox browser 
    ProfilesIni profile = new ProfilesIni(); 
    FirefoxProfile myprofile = profile.getProfile("SOFAdmin"); 
    driver = new FirefoxDriver(myprofile); 
    baseUrl = "https://10.96.0.65:9443"; 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

} 

@Test 
public void test() throws SQLException, ClassNotFoundException { 
// Load Microsoft SQL Server JDBC driver. 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
// Prepare connection url. 
String url = "jdbc:oracle:thin:@10.96.0.65:1521:orcl"; 
// Get connection to DB. 
con = DriverManager.getConnection(url, "POS_SOF", "POS_SOF"); 
// Create statement object which would be used in writing DDL and DML 
// SQL statement. 
stmt = con.createStatement(); 
// Send SQL SELECT statements to the database via the 
// Statement.executeQuery 
// method which returns the requested information as rows of data in a 
// ResultSet object. 
// define query to read data 
try { 
    String query = "select * from ACCOUNTS"; 
    ResultSet result = stmt.executeQuery(query); 
    if (result.next()) { 
    while (result.next()) { 
     // Fetch value of "username" and "password" from "result" 
     // object; this will return 2 existing users in the DB. 


     String username = result.getString("ID"); 
     String password = result.getString("CODE"); 
     // print them on the console 
     System.out.println("ID :" + username); 
     System.out.println("CODE: " + password); 
    } 
    result.close(); 
    } 
} 

catch (SQLException ex) { 
    System.out.println(ex); 
} 
// Add a new user on the UI 
String newtestusername = "test1234"; 
String newtestuserpassword = "1234"; 
// navigate to the site 
driver.get(baseUrl + "/POSAdminTool/AdminToo" 
     + "l/Login.faces"); 
// set new user name "NewTestUser" 
driver.findElement(By.id("userID")).sendKeys(newtestusername); 
// set new user password for the new user "NewTestUser" 
driver.findElement(By.id("password")).sendKeys(newtestuserpassword); 
// click on Add User button 
driver.findElement(By.id("form1:btn_login")).click(); 
// verify the welcome message displayed 
System.out 
    .println("Is welcome message displayed: " 
     + isElementPresent(By 
      .xpath("//*[contains(.,'Welcome back ')]"))); 

// verify the new user in the database 
// create a query 
String newuserquery = "SELECT * From userlogin where username=?"; 
// create a statement 
PreparedStatement stat = con.prepareStatement(newuserquery); 
stat.setString(1, newtestusername); 
try { 
    boolean hasResultSet = stat.execute(); 
    if (hasResultSet) { 
    ResultSet result = stat.getResultSet(); 
    // get new user name from the table 

    String newusername = result.getString("username"); 
    // assert that new user name should be 
    assertEquals(newtestusername, newusername); 
    } 
} catch (SQLException ex) 

{ 
    System.out.println(ex); 
} finally { 
    con.close(); 
} 

} 

@After 
public void tearDown() throws Exception { 
// close the driver 
driver.close(); 
} 

private boolean isElementPresent(By by) { 
try { 
    driver.findElement(by); 
    return true; 
} catch (NoSuchElementException e) { 
    return false; 
} 
} 

} 

Antwort

2

Sie verwenden eine Microsoft SQL Server JDBC-Treiberklasse mit einer Oracle-URL.

// Load Microsoft SQL Server JDBC driver. 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

Das ist völlig falsch. Holen Sie sich den Oracle JDBC-Treiber JAR. Sie müssen den Treiber der Datenbank zuordnen, mit der Sie eine Verbindung herstellen.

Sie benötigen dringend eine JDBC tutorial.

Sie könnten auch eine Lektion zum Schreiben von JUnit-Tests verwenden. Ich würde empfehlen, dass Sie diese Verbindungen externalisieren und diese Tests verschärfen.

+0

Lieber Duffymo, Danke für deine Antwort, ich versuche nur einem Freund in seiner Arbeit zu helfen, da es nicht meine Spezialisierung ist. Nochmals vielen Dank für Ihre freundliche Hilfe und ich werde versuchen, nach einer anderen Möglichkeit zu suchen, um diesen Fehler zu beheben. –

+0

Nicht anders; das ist der Weg.Wenn dies nicht Ihre Spezialisierung ist, rate ich Ihrem Freund, jemanden zu finden, der Java kennt. – duffymo

+0

Vielen Dank für Ihren Kommentar –

Verwandte Themen