来自Maven repo的ChromeDriver未在测试脚本

时间:2016-09-07 19:20:27

标签: java maven selenium selenium-webdriver selenium-chromedriver

在我的pom脚本中,我有:

<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>2.53.1</version>
</dependency>

MVNrepository上的存储库说明列出了几个编译依赖项,包括 Selenium-Chrome-Driver Selenium-Firefox-Driver 等。我可以运行Firefox -Driver脚本成功但当我尝试使用对象

运行相同的脚本时

ChromeDriver driver = new ChromeDriver();

我收到以下错误:

  

java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关更多信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver。最新版本可以从http://chromedriver.storage.googleapis.com/index.html

下载

无需下载Firefox-Driver即可运行(这是pom脚本的重点); Chrome驱动程序有什么不同吗?下图显示它是从Maven脚本编译的。

Maven - ChromeDriver

测试脚本:

import org.junit.Test;
import org.openqa.selenium.chrome.ChromeDriver;
import static org.junit.Assert.assertTrue;

public class MyFirstTest {

    @Test
    public void googleTest() {
        ChromeDriver driver = new ChromeDriver();
        driver.get("https://www.google.com/");
        assertTrue(driver.getTitle().equals("Google"));
        driver.quit();
    }
}

1 个答案:

答案 0 :(得分:1)

是的,它与Firefox不同,差异在a page referenced by exception上解释:

  

ChromeDriver由三个独立的部分组成。有浏览器本身(&#34; chrome&#34;),Selenium项目提供的语言绑定(&#34;驱动程序&#34;)和从Chromium项目下载的可执行文件,作为&#34; chrome&#34;之间的桥梁和#34;驱动程序&#34; 。这个可执行文件名为&#34; chromedriver&#34;,但我们会尝试将其称为&#34;服务器&#34;在这个页面,以减少混淆。

因此,为了实例化ChromeDriver,您需要

  1. this page
  2. 下载适用于您平台的ChromeDriver二进制文件
  3. 在实例化驱动程序时指定其路径(或者,在PATH中定义它)。例如:

    System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
    ChromeDriver driver = new ChromeDriver();
    

    讨论了有关如何指定ChromeDriver二进制文件的所有各种选项here

  4. Chrome本身应该有一个已定义的位置,以便ChromeDriver找到它。如何解释here