例如,我们有需要启用TouchID的场景,并且我们有需要禁用TouchID的场景。 Appium本身并没有公开这样的功能,所以我想知道是否可以为设备定义自定义功能。
如果它无法与Appium本身一起使用,我很乐意将Selenium Grid置于中间,以防提供此类功能。
我们正在使用Perfecto对本地和云端进行测试,因此,如果Perfecto或任何其他云服务提供此功能,我想知道这个问题。
因此,如果我在启动Appium会话时定义了以下功能:
capabilities.touchID = 'enabled';
我会得到一个启用了TouchID的设备。
此外,TouchID只是一个例子,我们有许多需要自定义功能的东西。
答案 0 :(得分:0)
可以在创建新会话时定义自己的功能:
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命令
几点说明:
大多数移动云也有自己的自定义功能,所以对于你的问题: