因果-硒-电网-发射器
在远程上发射浏览器的 Karma 插件 硒网格。 。 。 . 从 网络发射器。 。 。 .
使用 硒 -- -- 网络推进器国家预防机制模块 幕后传.
使用量
$ npm install --save-dev karma-selenium-grid-launcher
在您的 carma.conf.js 文件中定义一些继承自
SeleniumGrid,以 gridUrl。 。 。 .
module.exports = function(karma) {
...
config.set({
...
customLaunchers: {
'ie11': {
base: 'SeleniumGrid',
gridUrl: 'http://some-host:4444/wd/hub',
browserName: 'internet explorer',
platform: 'windows',
version: '11',
'x-ua-compatible': 'IE=EmulateIE7',
heartbeatInterval: 10000
}
},
browsers: ['ie11'],
...
});
除下文所描述的发射器特定配置密钥外,所有密钥 被传递到电网 作为能力, 给你的灵活性 做相应的 Selenium WebDriver 支持的任何事(见 Selenium ) 更多信息请参考文件).
请注意,如果你试图测试 在几个浏览器/平台上,你是
使用默认的硒匹配器,您可能想要使用
无证件 applicationName 作为唯一的平台
硒将匹配 WINDOWS, (中文(简体) ), MAC,以及 LINUX。 。 。 .
您还不妨使用 浏览器常数 由硒-webdriver输出
以确保你在使用 browserName 由硒反应得到.
启动器- 特定配置密钥
以下密钥作为A部分提供 customLauncher 块将 没有 为:
被解释为有能力发送到网格网;相反,它们得到处理
从某种意义上说,通过发射器.
参数
启动浏览器二进制时应该使用的参数组 。 说明
只有Chrome、Firefox和IE接受此密钥;如果
又一个 browserName 已使用.
基础
这显然只是被卡玛用来告诉 从哪一个基地延伸,但
包括在这里是为了说明 base 将不会被传递作为一个
能力.
关闭前退出
打电话 driver.close() 打电话前 driver.quit()设置为 true 改为
围绕浏览器/设备工作,这些设备不会默认关闭活动窗口
当测试完成时.
见 浏览器 Quirks 和 Workrounds 浏览器/设备 可能需要这样做才能发挥适当的功能.
延迟
在启动浏览器前等待时间( ms) 。 当浏览器必须使用时使用此功能 最后成为测试的前台窗口, 如测试视频 回放萨法里.
扩展
远程浏览器上应当安装的扩展路径序列 。 说明
只有Chrome和Firefox接受此密钥。 如果
又一个 browserName 已使用.
firefox 首选项
对象映射 Firefox 偏好键到其期望值 。 如果你想的话 默认将一个首选项传给 firefox , 此选项将生效 诡计.
网格Url
用于启动浏览器的硒网格的URL. 如果不提供,则
默认为 http://localhost:4444/wd/hub。 。 。 .
心跳间歇
间歇( 以毫秒计) 以发送心跳以避免会话被杀死
暂停 。 未提供或设定为 0,不会执行心跳.
选项
对象映射适当的方法名 Options 目标
浏览器到它应该调用的值 。 见
硒 -- -- 网络驱动程序 API 文件 更多信息.
提示打开( 已过期)
当元素带有给定时发送并关闭提示 id 可见于
文档.
这种办法被贬值,在任何情况下都可能不需要.
退出前重新设置
装入浏览器 about:blank 打电话前 driver.quit()设置此选项
改为 true 在不支持关闭的浏览器/设备周围工作
测试完成时激活窗口 .
见 浏览器 Quirks 和 Workrounds 浏览器/设备 可能需要这样做才能发挥适当的功能.
压制警告
价值为 true 将压制互联网探索者警告; 任何其他值
将显示警告.
窗口图形
用于设置窗口几何对象。 如果有任何密钥
width, (中文(简体) ), height, (中文(简体) ), x,或 y 在对象中,它们将被用于
修改窗口几何的这个方面。 任何其他密钥都将被忽略 .
x- ua 兼容
用于一个 X-UA-Compatible meta 标签。 如果没有提供,则因果报应
将不添加 meta 标签.
过早地杀死测试
如果过早地停止测试(例如通过击打) Ctrl+c发射后不久
测试,浏览器/设备可能需要一些时间才能完全关闭。 改为:
保持简单(英文),期间有一系列承诺
启动/初始化。 当您停止请求时, 确定此请求中的位置
系列将发出呼吁 driver.quit()。 。 。 .
如果远程驱动程序返回一个会话, 您将不得不等待
浏览器/设备以加载因果报应页面并进行初始化
在此之前 driver.quit() 将召入.
如果你在使用移动设备, 也要记住大楼/部署 控制器应用程序和/或启动模拟器需要一些时间。 自兹 此驱动程序只能在完成后使用, 您必须等待此程序 完成程序以确保适当的清理.
从停止测试直到某个浏览器关闭
消息 Waiting for ${browser} to quit... (${time}s) 将输出到
每10个控制台.
浏览器 Quirks 和 Workrounds
这是某些浏览器/设备已知的相容性问题列表, 以及如何围绕这些问题开展工作.
如果您遇到没有列出的浏览器怪胎, 请打开一个 PR 加上它,即使没有已知的工作.
在 macOS Safari 上播放视频
macOS Safari要求它是播放回放视频的前台窗口. 使用
页:1 delayLaunch 选项,以确保Safari在
同一机器上的任何其他浏览器.
请注意,视频元素必须在取景点内有一部分 正在由浏览器显示。 在你的测试中,确保做到这一点.
iOS 10 萨法里
iOS 10 Safari 未暗示关闭当前窗口时 driver.quit()
按 WebDriver 规格,称为。 这导致浏览器
在下一次测试运行中连接两次; 旧窗口和新启动
窗口。 你应该用 closeBeforeQuit 选项到
确保窗口在每次测试运行结束时关闭.
iOS 12 萨法里
iOS 12 Safari 也不支持关闭当前窗口
driver.close() 或者说 driver.quit()。这导致旧窗口连接
至下个运行,在断开之前(新测试运行重用旧运行)
窗口,因此该页面有效刷新。 你应该用
resetBeforeQuit 选项,以确保窗口设置为
about:blank 每次测试结束时.
实例
更详细的例子见: 示例文件。 。 。 .