2017-09-25 46 views
0

我有2個包。在一個包我已經宣佈了launchBrowser()方法,它看起來是這樣的:驅動程序可執行文件的路徑必須由webdriver.chrome.driver設置; IllegalStateException

package BaseCode; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class TestBase { 

    public static WebDriver driver = null; 

     public void launchBrowser(String baseUrl) throws Exception{ 
      try { 
        System.out.println("Launching the Chrome Browser"); 
        String driverpath = "E:\\Learning\\Selenium\\Drivers\\ChromeDriver\\chromedriver.exe"; 
        System.setProperty("webdriver.chrome.driver",driverpath); 
        driver = new ChromeDriver(); 
        driver.manage().window().maximize(); 
        System.out.println("Opening URL: " + baseUrl); 
        driver.get(baseUrl); 
     }catch(Exception E) { 
      System.out.println(E.getMessage() +"\n" + E.getStackTrace()); 
      } 
     } 
} 

在那裏我打電話上述launchBrowser()方法第二類是這樣的:

package pack_one; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import BaseCode.TestBase; 

public class MultipleiFrames { 

    public static TestBase B = new TestBase(); 

    public static void main(String[] args) { 

     WebDriver driver = new ChromeDriver(); 
     String url = "http://demo.guru99.com/selenium/guru99home/"; 
     try { 
      B.launchBrowser(url); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

當運行我得到代碼異常在線程「main」中:

java.lang.IllegalStateException:驅動程序可執行文件的路徑 必須由webdriver.chrome.driver系統屬性

請幫我設置....

+0

請相應地格式化你的問題,包括錯誤消息。 –

+0

感謝您的信息,我第一次到這個論壇,所以不知道。從下次開始我會記住這一點。 –

+0

沒關係,只要確保你閱讀了這些主題:) https://stackoverflow.com/help/asking –

回答

1

的問題是你的初始化兩次chromedriver,一旦在第二級開始你發佈,然後在第二個類中調用該方法時,再次使用launchBroswer方法。當你在launchBrowser方法中設置chromedriver路徑時,初始化chromeDriver的第一個調用將不會具有該屬性集

+0

明白了!非常感謝:) –

+0

是@jsmith你是對的+1 – iamsankalp89

0

這是一個普遍問題,確保您只需初始化一次類,否則會發生此異常。

只是刪除驅動程序的初始化一個聲明,其餘部分都很好

driver = new ChromeDriver(); 
相關問題