NullPointer异常在Chrome中通过Selenium webDriver运行testCases

时间:2012-01-31 11:40:18

标签: selenium webdriver selenium-webdriver

我正在尝试在Chrome上运行我的测试用例并且我已经在属性文件中复制了路径,但是控制台仍然会抛出恼人的语句,例如: 错误:chromedriver可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关更多信息,请参阅http://code.google.com/p/selenium/wiki/ChromeDriver。最新版本可从http://code.google.com/p/chromium/downloads/list下载 FAILED CONFIGURATION:@BeforeTest startWebSession 显示java.lang.NullPointerException

5 个答案:

答案 0 :(得分:3)

我发现有一件事是Chrome驱动程序无法从Eclipse中启动。它必须从命令提示符运行。至少在Windows 7 64位上。

尝试从Eclipse中运行它会产生以下异常:

  

线程“ main ”中的异常java.lang.IllegalStateException:webdriver.chrome.driver系统属性定义的chromedriver可执行文件不存在:C:\ Windows \ System32 \ chromedriver.exe

此问题仅适用于Chrome。 IE和FireFox在Eclipse中运行良好。

答案 1 :(得分:2)

http://code.google.com/p/chromedriver/downloads/list

下载Chrome驱动程序

以下列方式初始化您的驱动程序对象 -

System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");

    WebDriver driver = new ChromeDriver();

通过这样做,chrome驱动程序可以正常工作。

答案 2 :(得分:0)

这是我如何初始化ChromeDriver:

public RegulationUI() throws Exception{
   ChromeDriverService service = ChromeDriverService.createDefaultService();
   File file = new File(RegulationUI.class.getResource("/chromedriver.exe").toURI());
   System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());                
   ChromeOptions options = new ChromeOptions();
   options.addArguments("--start-maximized");
   driver = new ChromeDriver(service,options);
}

BTW我的测试类名为RegulationUI

试试这个,它适用于我,而且,我知道这是“多计算机”解决方案 - 我们的项目是颠覆的,这样每个人都可以运行它,即使我们有不同的设置在磁盘上的“工作文件夹” “对于IDE来说是

答案 3 :(得分:0)

    Please download chromedriver.exe for Google chrome browser 
    please download IEdriver.exe for Internet explore.

请将这些文件保存在Windows的根文件夹中以简化操作。让我们考虑一下c:\(C Driver)上安装的操作系统在C-Drive上创建文件夹名Selenium并保留这些二进制(.exe)文件。比如c:\ selenium

    in your Testcase/testScript Write as 

    //For Chrome Browser:
    Webdriver driver = new ChromeDriver();
    java.io.File file = new File("c:\\selenium\\chromedriver.exe");     
    System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());

答案 4 :(得分:0)

如果您正在使用maven,请尝试在您的pom中使用以下内容:

    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>RELEASE</version>
    </dependency> 

并在设置中将其用作chrome:

    ChromeDriverManager.getInstance().setup();
    driver = new ChromeDriver();