为什么我们需要为Chrome和IE浏览器而不是Firefox浏览器设置系统属性

Sac*_*Tan 9 selenium selenium-chromedriver selenium-webdriver selenium-iedriver

对于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");

    }

}
Run Code Online (Sandbox Code Playgroud)

对于Firefox,

public class Firefox {

      public static void main(String[] args) {

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

        }

    }
Run Code Online (Sandbox Code Playgroud)

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

San*_*ani 6

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

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

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

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

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

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

这里成立.