2017-09-25 141 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(); 
相关问题