为了在差异浏览器上执行测试脚本,我们从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'在我的机器上,selenium webdriver能否使用它来启动IE?
为什么我们专门从IEDriver
下载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'
答案 0 :(得分:7)
"浏览器驱动程序"是实现WebDriver wire protocol的服务器,并且知道如何将这些命令转换为特定浏览器的专有本机API。
WebDriver site解释说:
Selenium-WebDriver使用每个浏览器直接调用浏览器 浏览器对自动化的原生支持。这些直接电话是怎样的 制作,他们支持的功能取决于您的浏览器 使用
例如,ChromeDriver wiki将其描述如下:
ChromeDriver由三个独立的部分组成。有 浏览器本身(" chrome"),由语言提供的语言绑定 Selenium项目("驱动程序")和从中下载的可执行文件 Chromium项目,作为" chrome"之间的桥梁。和 "驱动"
基本上,浏览器不知道如何" talk" WebDriver Wire协议和WebDriver都不知道如何对话"谈话"浏览器API。实际上,每个浏览器都有自己的原生API。 "浏览器驱动程序"知道如何解释有线协议并调用该浏览器的API。