- Selenium 教程
- Selenium - 首页
- Selenium - 概述
- Selenium - 组件
- Selenium - 自动化测试
- Selenium - 环境搭建
- Selenium - 远程控制
- Selenium IDE 教程
- Selenium - IDE 简介
- Selenium - 特性
- Selenium - 限制
- Selenium - 安装
- Selenium - 创建测试
- Selenium - 创建脚本
- Selenium - 控制流
- Selenium - 存储变量
- Selenium - 警报和弹出窗口
- Selenium - Selenese 命令
- Selenium - Actions 命令
- Selenium - Accessors 命令
- Selenium - Assertions 命令
- Selenium - Assert/Verify 方法
- Selenium - 定位策略
- Selenium - 脚本调试
- Selenium - 验证点
- Selenium - 模式匹配
- Selenium - JSON 数据文件
- Selenium - 浏览器执行
- Selenium - 用户扩展
- Selenium - 代码导出
- Selenium - 代码输出
- Selenium - JavaScript 函数
- Selenium - 插件
- Selenium WebDriver 教程
- Selenium - 简介
- Selenium WebDriver vs RC
- Selenium - 安装
- Selenium - 第一个测试脚本
- Selenium - 驱动程序会话
- Selenium - 浏览器选项
- Selenium - Chrome 选项
- Selenium - Edge 选项
- Selenium - Firefox 选项
- Selenium - Safari 选项
- Selenium - 双击
- Selenium - 右击
- Python 中的 HTML 报告
- 处理编辑框
- Selenium - 单个元素
- Selenium - 多个元素
- Selenium Web 元素
- Selenium - 文件上传
- Selenium - 定位器策略
- Selenium - 相对定位器
- Selenium - 查找器
- Selenium - 查找所有链接
- Selenium - 用户交互
- Selenium - WebElement 命令
- Selenium - 浏览器交互
- Selenium - 浏览器命令
- Selenium - 浏览器导航
- Selenium - 警报和弹出窗口
- Selenium - 处理表单
- Selenium - 窗口和标签页
- Selenium - 处理链接
- Selenium - 输入框
- Selenium - 单选按钮
- Selenium - 复选框
- Selenium - 下拉框
- Selenium - 处理 IFrame
- Selenium - 处理 Cookie
- Selenium - 日期时间选择器
- Selenium - 动态 Web 表格
- Selenium - Actions 类
- Selenium - Action 类
- Selenium - 键盘事件
- Selenium - 键上/下
- Selenium - 复制和粘贴
- Selenium - 处理特殊键
- Selenium - 鼠标事件
- Selenium - 拖放
- Selenium - 笔事件
- Selenium - 滚动操作
- Selenium - 等待策略
- Selenium - 显式/隐式等待
- Selenium - 支持功能
- Selenium - 多选
- Selenium - 等待支持
- Selenium - 选择支持
- Selenium - 颜色支持
- Selenium - ThreadGuard
- Selenium - 错误和日志记录
- Selenium - 异常处理
- Selenium - 其他
- Selenium - 处理 Ajax 调用
- Selenium - JSON 数据文件
- Selenium - CSV 数据文件
- Selenium - Excel 数据文件
- Selenium - 跨浏览器测试
- Selenium - 多浏览器测试
- Selenium - 多窗口测试
- Selenium - JavaScript 执行器
- Selenium - 无头执行
- Selenium - 捕获屏幕截图
- Selenium - 捕获视频
- Selenium - 页面对象模型
- Selenium - 页面工厂
- Selenium - 记录和回放
- Selenium - 框架
- Selenium - 浏览上下文
- Selenium - DevTools
- Selenium Grid 教程
- Selenium - 概述
- Selenium - 架构
- Selenium - 组件
- Selenium - 配置
- Selenium - 创建测试脚本
- Selenium - 测试执行
- Selenium - 端点
- Selenium - 自定义节点
- Selenium 报告工具
- Selenium - 报告工具
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium & 其他技术
- Selenium - Java 教程
- Selenium - Python 教程
- Selenium - C# 教程
- Selenium - Javascript 教程
- Selenium - Kotlin 教程
- Selenium - Ruby 教程
- Selenium - Maven 和 Jenkins
- Selenium - 数据库测试
- Selenium - LogExpert 日志记录
- Selenium - Log4j 日志记录
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash 测试
- Selenium - Apache Ant
- Selenium - Github 教程
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
Selenium - IE 驱动
Internet Explorer 是一个独立的服务器,它实现了 Webdriver 的线协议。这已在 Internet Explorer 11 版本和 Windows 10 中得到验证。它可能适用于 Internet Explorer 和 Windows 的早期版本,但未获得官方支持。
驱动程序支持 32 位和 64 位浏览器版本。例如,如果使用 IEDriverServer.exe 的 32 位版本,则将打开 32 位版本的 Internet Explorer。类似地,如果使用 IEDriverServer.exe 的 64 位版本,则将打开 64 位版本的 Internet Explorer。
IE 驱动程序安装
在使用 InternetExplorerDriver 之前,没有执行任何安装程序的先决条件,但是可能需要一些配置。独立服务器可执行文件可从以下链接中的图像突出显示部分获得 https://www.seleniumcn.cn/downloads/。
下载完成后,应将其设置在正确的路径中。
IE 驱动的优势
InternetExplorerDriver 在真实的浏览器中执行,并与 JavaScript 一起使用。
IE 驱动的劣势
InternetExplorerDriver 仅适用于 Windows,并且速度较慢。
什么是命令行开关?
InternetExplorerDriver 的特性可以通过使用多个命令行参数来更新。
开关 | 用途 |
---|---|
–port=<portNumber> | 指向 InternetExplorerDriver 的 HTTP 服务器与来自语言绑定的命令通信的端口。默认值为 5555。 |
–host=<hostAdapterIPAddress> | 指向 InternetExplorerDriver 的 HTTP 服务器与来自语言绑定的命令通信的主机适配器的 IP 地址。默认值为 127.0.0.1。 |
–log-level=<logLevel> | 指向生成日志消息的级别。正确的值为 FATAL、ERROR、WARN、INFO、DEBUG 和 TRACE。默认值为 FATAL。 |
–log-file=<logFile> | 指向日志文件的完整路径和文件名。默认值为标准输出。 |
–extract-path=<path> | 指向用于提取服务器使用的支持文件的目录的完整路径。如果未提及,则默认值为 TEMP。 |
–silent | 在服务器启动时抑制诊断输出。 |
什么是重要的系统属性?
系统属性使用 Java 中的 System.setProperty() 或使用 InternetExplorerDriver 使用的 -DpropertyName=value 命令行标志进行配置。
开关 | 用途 |
---|---|
webdriver.ie.driver | 指向 IE 驱动程序二进制文件的路径。 |
webdriver.ie.driver.host | 指向 InternetExplorerDriver 与来自语言绑定的命令通信的主机适配器的 IP 地址。 |
webdriver.ie.driver.loglevel | 指向生成日志消息的级别。正确的值为 FATAL、ERROR、WARN、INFO、DEBUG 和 TRACE。默认值为 FATAL。 |
webdriver.ie.driver.logfile | 指向日志文件的完整路径和文件名。 |
webdriver.ie.driver.silent | 在服务器启动时抑制诊断输出。 |
webdriver.ie.driver.extractpath | 指向用于提取服务器使用的支持文件的目录的完整路径。如果未提及,则默认值为 TEMP。 |
IE 驱动程序配置的先决条件
- 应从链接 https://www.seleniumcn.cn/downloads/ 下载 IEDriverServer。
- 下载完成后,应将其设置在正确的路径中。
- 在 Internet Explorer 版本 7、Windows Vista、Windows 7 和 Windows 10 的更高版本上,所有区域的受保护模式应设置为相同。可以打开和关闭该值,前提是每个区域的值都相同。
要设置受保护模式,请从“工具”菜单中选择“Internet 选项”,然后导航到“安全”选项卡。每个区域在选项卡的末尾都有一个复选框,称为“启用受保护模式”。
- Internet 选项对话框的“高级”选项卡中提供的增强受保护模式应禁用 Internet Explorer 版本 10 及更高版本。
- 浏览器缩放比例应设置为 100%,这有助于将本机鼠标事件发送到正确的坐标。
- 对于 Internet Explorer 版本 10,参数“更改文本、应用和其他项目的大小”应设置为 100%。
- 我们应该在目标计算机上设置注册表项,以便驱动程序可以连接到 Internet Explorer 对象。对于 32 位 Windows,键值应为 -
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer \Main\FeatureControl\FEATURE_BFCACHE
对于 64 位 Windows,键值应为 -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft \Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
请注意,如果不存在,则应创建子键 FEATURE_BFCACHE。此外,在此键中,生成一个名为 iexplore.exe 的 DWORD 值,并将其设置为 0。
什么是本机事件和 Internet Explorer?
由于 InternetExplorerDriver 仅在 Windows 上运行,因此它尝试利用所谓的本机或操作系统级事件来对浏览器执行鼠标和键盘操作。这与对相同操作使用模拟 JavaScript 事件形成对比。
使用 JavaScript 事件 的优点是它不需要 JavaScript 沙箱,并且它确认浏览器内部的正确 JavaScript 事件传播。但是目前在 IE 浏览器没有焦点且尝试将鼠标悬停在元素上时,鼠标事件存在一些问题。
浏览器焦点
问题在于 IE 浏览器没有完全支持在它没有焦点时发送到浏览器窗口的 Windows 消息。唯一被单击的元素应该有一个焦点窗口,但元素不会经历点击。
将鼠标悬停在元素上
当尝试将鼠标悬停在元素上时,物理鼠标位于 IE 浏览器窗口的边界处,但悬停不起作用。它似乎在很短的时间内有效,但随后元素又恢复到其先前状态。
点击<option>元素或提交表单和alert()
有时 IEDriver 无法使用原生事件与元素通信,例如在选择<select>标签内的<option>元素时。此外,在使用 submit()、alert()、prompt() 方法时也会遇到相同的问题。
InternetExplorerDriver 的多个实例
IEDriverServer.exe 允许创建多个 InternetExplorerDriver 对象。但此功能尚未经过充分测试,在焦点、cookie 等方面可能存在问题。因此,建议使用虚拟机和 RemoteWebDriver。有两个与多个 Internet Explorer 对象之间共享的 cookie 相关的解决方案。第一步是以隐身模式启动 Internet Explorer。
之后,Internet Explorer 将以清除的会话数据打开,并在终止时不会存储修改后的会话数据。为此,请将功能 -orceCreateProcessApi 的值设置为 true,并将 browserCommandLineSwitches 的值设置为 -private。这仅适用于 Internet Explorer 8 及更高版本,并且 Windows 注册表应具有以下值,并且其路径应将键 TabProcGrowth 设置为 0 −
HKLM_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main.
要在 InternetExplorer 初始化时清除会话,我们需要将功能 ensureCleanSession 的值传递为 true。这将有助于清除所有正在执行的 Internet Explorer 实例的缓存。
远程执行 IEDriverServer.exe
要在远程计算机内部执行 Internet Explorer 驱动程序,我们需要使用独立的远程服务器与类似于 RemoteWebDriver 的语言绑定连接。
在 Windows 服务下执行 IEDriverServer.exe
不支持在 Windows 服务应用程序中执行 Internet Explorer 驱动程序。在这方面也没有经过测试。可能可以在 Windows 服务应用程序中运行 Internet Explorer 驱动程序,但可能存在许多需要解决的问题。
结论
这总结了我们关于 Selenium IE 驱动程序教程的全面介绍。我们从描述 IE 驱动程序安装、IE 驱动程序的优缺点、命令行开关是什么、重要的系统属性是什么、IE 驱动程序配置的先决条件是什么、原生事件和 Internet Explorer 是什么、InternetExplorerDriver 的多个实例、远程执行 IEDriverServer.exe 以及在 Windows 服务下执行 IEDriverServer.exe 开始。
这使您具备了 Selenium IE 驱动程序的深入知识。明智的做法是不断练习您所学到的知识,并探索与 Selenium 相关的其他知识,以加深您的理解并扩展您的视野。