例如,我们有需要启用 TouchID 的场景,也有需要禁用 TouchID 的场景。 Appium 本身并没有公开这些功能,所以我想知道是否可以为设备定义自定义功能。
如果不能使用 Appium 本身,我很乐意将 Selenium Grid 放在中间,以防它提供这样的功能。
我们正在使用 Perfecto 在本地和云端进行测试,所以作为一个附带问题,我想知道 Perfecto 或任何其他云服务是否提供此功能。
所以,如果我在启动 Appium session 时定义以下功能:
capabilities.touchID = 'enabled';
我会得到一个启用了 TouchID 的设备。
此外,TouchID 只是一个示例,我们有很多事情需要自定义功能。
可以在创建新 session 时定义自己的能力:
caps.android = {
platformName: 'Android',
...
mycap: 12345
}
Appium 服务器将抛出它收到无法识别的功能的消息:
[BaseDriver] The following capabilities were provided, but are not recognized
by appium: mycap.
[BaseDriver] Session created with session id: f672074d-ed33-49c1-a243-b8d10572608e
稍后在您的测试中,您可以获得能力值,例如在 wd.js 中:
const caps = await driver.sessionCapabilities()
// caps.mycap will return 12345
并根据值设置您需要的逻辑,例如发送特定的 adb 命令
几个注意事项:
大多数移动云也有自己的自定义功能,所以对于您的附带问题:
关于android - 是否可以在 Appium 中为设备定义自定义功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48230513/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |