当前位置: 首页 > 知识库问答 >
问题:

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

公良信然
2023-03-14

对于铬,

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

    }

}

对于Firefox,

public class Firefox {

      public static void main(String[] args) {

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

        }

    }

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

共有3个答案

姬和豫
2023-03-14

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

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

糜淇
2023-03-14

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

Firefox驱动程序使用Firefox插件控制Firefox浏览器。所使用的Firefox配置文件从机器上安装的配置文件中剥离出来,只包括Selenium WebDriver。xpi公司

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

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

有关更多详细信息,请参阅selenium文档

杨经武
2023-03-14

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

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

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

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

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

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

从这里成立。

 类似资料:
  • 问题内容: 对于Chrome, 对于Firefox, 为什么我们需要为Chrome和IE 指定? 问题答案: 我也有同样的问题,但是经过挖掘,我发现, 使用本机浏览器方法。Selenium提供了用于Firefox的内置驱动程序,但不提供其他浏览器的内置驱动程序。所有驱动程序(Chrome驱动程序,IE驱动程序等)都是基于每个浏览器使用的特殊JS引擎构建的。 Selenium 与Mozilla Fi

  • 为了在diff浏览器上执行测试脚本,我们从< code>seleniumhq.com下载特定的浏览器驱动程序并运行脚本。 这段代码运行良好,正如它应该的那样: 当我的机器上已经有IE可执行文件-“iexplore.exe”时,硒网络驱动程序不能使用它来启动IE吗? 为什么我们专门从这里下载? 我甚至尝试设置它并运行该程序。浏览器启动时地址为 -但它无法导航到相应的网站,最终抛出异常: 线程“mai

  • 问题内容: 我有5个FF,Chrome,IE,Opera和Safari插件/扩展程序。 如何识别用户浏览器并重定向(一旦单击安装按钮)下载相应的插件? 问题答案: 谷歌浏览器可靠检测通常会导致检查用户代理字符串。这种方法不可靠,因为欺骗这个值很简单。 仅在确实需要时才使用浏览器检测方法,例如显示特定于浏览器的安装扩展说明。尽可能使用特征检测。 可靠性分析 在先前的方法依赖于渲染引擎的性质来检测浏览

  • gRPC基于HTTP/2,浏览器广泛支持HTTP/2(假设)。因此,我觉得从浏览器使用gRPC应该没有问题。 然而,很明显有一个问题。协议grpc web是不同的,因为“由于浏览器限制”而存在。还有许多博客文章描述了为让gRPC从浏览器工作而部署的复杂技术堆栈。 我忽略了实际的问题——为什么gRPC不只是在浏览器上工作?

  • 控制台的使用 控制台查看源码 控制台的 Sources标签可以查看源码。按住快捷键「cmd + P」,可以根据文件名查找源码文件。 其他 show user agent shadow DOM 把上图中的红框部分打钩。

  • 问题内容: 我在使Chrome与64位Ubuntu 13.10上的RSpec / Capybara配合使用时遇到麻烦。默认情况下,它会启动Firefox- 我们尝试了多种更改方式,包括: http://actsasblog.ca/2011/09/28/how-to-use-chrome-with- capybara/ ‘: undefined local variable or method 我们