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

为什么我们需要下载浏览器(IE,Chrome)驱动程序

濮阳浩穰
2023-03-14

为了在diff浏览器上执行测试脚本,我们从< code>seleniumhq.com下载特定的浏览器驱动程序并运行脚本。

这段代码运行良好,正如它应该的那样:

System.setProperty("webdriver.ie.driver", "C:\\Users\\Public\\CIO\\resources\\iedriver.exe");

WebDriver driver = new InternetExplorerDriver();
driver.get("www.mywebsite.com");

当我的机器上已经有IE可执行文件-“iexplore.exe”时,硒网络驱动程序不能使用它来启动IE吗?

为什么我们专门从这里下载seleniumhq.com

C:\Program Files\Internet Explorer\iexplore.exe

我甚至尝试设置它并运行该程序。浏览器启动时地址为 --port=1234/,但它无法导航到相应的网站,最终抛出异常

线程“main”org.openqa.selenium.remote.UnreachableBrowserException中的异常:无法启动新会话。可能的原因是远程服务器的地址无效或浏览器启动失败。构建信息:版本:“2.28.0”,修订版本:“18309”,时间:“2012-12-11 20:21:18”

共有1个答案

杜鸿彩
2023-03-14

“浏览器驱动程序”是实现WebDRiver有线协议的服务器,并且知道如何将这些命令转换为特定浏览器的专有本机API。

WebDRiver网站解释说:

Selenium WebDriver使用每个浏览器的本机自动化支持直接调用浏览器。如何进行这些直接调用以及它们支持的功能取决于您使用的浏览器。

例如,ChromeDriver wiki对它的描述如下:

ChromeDriver由三个独立的部分组成。有浏览器本身(“chrome”)、Selenium项目提供的语言绑定(“驱动程序”)和从Chromium项目下载的可执行文件,后者充当“chrome”和“驱动程序”之间的桥梁。

本质上,浏览器不知道如何“谈论”网络驱动程序有线协议,网络驱动程序也不知道如何“谈论”浏览器应用编程接口。事实上,每个浏览器都有自己的本机应用编程接口。“浏览器驱动程序”知道如何解释有线协议并调用该浏览器的应用编程接口。

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

  • 对于铬, 对于Firefox, 为什么我们需要为Chrome和IE指定?

  • 上面说 ChromeDriver是一个实现W3C WebDriver标准的独立服务器 看起来W3C WebDriver标准只定义了自动化程序和Chromedriver之间的接口。Chromedriver充当HTTP服务器,从自动化程序获取命令。 但是ChromeDriver如何与Chrome通信呢? 还是通过HTTP协议? 如果是,我们在哪里可以得到关于细节的留档?Chrome内部的哪个组件负责处

  • 我正在使用ChromeDriver V2.24,我的系统中有Chrome Browser52(未安装,可执行文件)。 NosuchSessionException:没有这样的会话 控制台: 注意:在Windows安全更新之前,当我使用ChromeDriver3.1和Chrome58时,我的脚本运行良好。更新后,我无法启动Chrome浏览器,因为它不是启动浏览器,而是在后台运行。

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?