【问题标题】:Why do we need to set the System Property for Chrome And IE Browser and Not For Firefox Browser为什么我们需要为 Chrome 和 IE 浏览器设置系统属性,而不是为 Firefox 浏览器设置系统属性
【发布时间】:2016-05-19 01:31:08
【问题描述】:

对于 Chrome,

public class Chrome {

  public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
        WebDriver driver = new ChromeDriver();              
        driver.get("http://www.google.com");

    }

}

对于火狐,

public class Firefox {

      public static void main(String[] args) {

            WebDriver driver = new FirefoxDriver();              
            driver.get("http://www.google.com");

        }

    }

为什么我们需要为 Chrome 和 IE 指定 system.setProperty

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver selenium-iedriver


    【解决方案1】:

    我也有同样的问题,但在挖掘后我发现,

    WebDriver 使用本机浏览器方法。 Selenium 提供内置 Firefox 的驱动程序,但不适用于其他浏览器。所有驱动程序(Chrome 驱动程序、IE驱动程序等)是基于使用的特殊JS引擎构建的 每个浏览器。

    Selenium WebDriver 与 Mozilla Firefox 配合得非常好,因为它有一个内置的驱动服务器。但对于 Internet Explorer 和 Google Chrome,情况并非如此。 Firefox 是最传统的浏览器,因此 Selenium WebDriver 在启动浏览器之前不需要设置任何额外的实用程序。 Selenium 包会自动引用 firefox.exe 的默认位置,因此用户无需设置任何其他属性。

    如果你曾经得到“驱动程序可执行文件的路径必须由 webdriver 设置。 IE。驱动程序系统属性”错误或其类似措辞的 Chrome 等效项,这意味着您需要在浏览器上安装驱动程序服务器。驱动服务器管理浏览器和 Selenium 有线协议之间的调用。

    InternetExplorerDriver 是一个独立的服务器,它实现了 WebDriver 的有线协议

    同样,Google Chrome 没有内置服务器,因此您需要一个 Chrome 驱动程序服务器来将您的 Selenium 代码传送到浏览器。您可以下载 Chrome 驱动服务器。

    创立于here

    【讨论】:

    • 谢谢 Sanjay.. 这对理解背后的概念很有帮助。
    【解决方案2】:

    FirefoxDriver、ChromeDriver、InternetExplorerDriver的实现方式不同,因此实例化对象的方式也不同。

    Firefox 驱动程序 使用 Firefox 插件控制 Firefox 浏览器。使用的 Firefox 配置文件从机器上安装的内容中剥离,仅包含 Selenium WebDriver.xpi

    InternetExplorerDriver 是一个独立的服务器,它实现了 WebDriver 的有线协议。

    ChromeDriver 由 Chromium 项目iteslf 维护/支持。 WebDriver 通过 chromedriver 二进制文件(在 chromium 项目的下载页面上找到)与 Chrome 一起工作。您需要同时安装 chromedriver 和 chrome 浏览器版本。 chromedriver 需要放置在系统路径的某个位置,以便 WebDriver 自动发现它。 Chrome浏览器本身是chromedriver在默认安装路径中发现的

    更多详情,请参考selenium documentation

    【讨论】:

      【解决方案3】:

      简单的回答是,每个浏览器都有自己的 WebDriver 实现,并且不由 Selenium 项目维护。因此,为了让 selenium 与浏览器特定的驱动程序交互,我们需要指定驱动程序的完整路径。

      为什么firefox不需要指定驱动路径?在 Selenium 2.0 中,selenium RC 仍然存在并支持 firefox。从 Selenium 3.0 起,官方不再支持任何特定于浏览器的驱动程序。因此,我们需要通过 System.setproperty 为所有浏览器指定驱动程序路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        • 2017-06-24
        • 2017-05-20
        相关资源
        最近更新 更多