锁定注意,一些方法类似 endTestCoverage() 目前并不能完全支持。当这个问题被解决后,覆盖率支持才会被添加。如果你仍然想使用这些方法,请参考 GitHub 上关于 bindings 的文档。
锁定屏幕。
# ruby lock 5 # python driver.lock(5) // java driver.lockScreen(3); // javascript driver.lock(3) // php $this->lock(3); // c# driver.LockDevice(3); // objective c [driver lockDeviceScreen:3]; |
将应用切换至后台
将当前的应用切换到后台,然后可以让其在指定时间内回到前台,或者让它一直留在后台。
传递给这个方法的参数有两种类型:
一个整型(秒):表示后台状态维持多久。-1 表示持续置于后台。这种风格的参数已经被废弃。
一个看起来像 {"timeout": secs} 的对象。里面的 secs 是含义和第一个类型一样的整型数字(即表示置于后台多少秒),或者为 null (表示持续置于后台)。
# ruby background_app 5 # 置于后台,持续5秒 background_app -1 # 持续置于后台 # python driver.background_app(5) # 置于后台,持续5秒 driver.background_app(-1) # 持续置于后台 driver.background_app({'timeout': None}) # 持续置于后台 // java driver.runAppInBackground(5); // 置于后台,持续5秒 driver.runAppInBackground(-1); // 持续置于后台 // javascript driver.backgroundApp(5); // 置于后台,持续5秒 driver.backgroundApp(-1); // 持续置于后台 driver.backgroundApp({timeout: null}); // 持续置于后台 // php $this->backgroundApp(5); $this->backgroundApp(-1); // c# driver.BackgroundApp(5); driver.BackgroundApp(-1); // objective c [driver runAppInBackground:3]; [driver runAppInBackground:-1]; |
收起键盘
收起键盘。 注意: 在 iOS,这辅助功能并不能保证一定有效。因为没有用于隐藏键盘的自动化钩子方法(译者注:可以理解为 iOS 没有提供隐藏键盘的 API),而且应用是允许用户去使用各种策略去收起键盘的,无论是点击键盘以外的区域,还是向下滑动诸如此类...相比于使用该方法,我们更加鼓励你去思考 用户 在应用中是如何收起键盘(如滑动,点击一个固定的坐标,等等...),并让 Appium 去执行这些方法,而不是调用这个 API 。话虽如此,但这里默认的行为还是可能帮助到你的。
# ruby hide_keyboard # python driver.hide_keyboard() // java driver.hideKeyboard(); // javascript driver.hideKeyboard() // php $this->hideKeyboard(); $this->hideKeyboard(array('strategy' => 'pressKey', 'key' => 'Done')); // c# driver.HideKeyboard("Done"); // objective c [driver hideKeyboard]; |
启动 Activity
// java driver.startActivity("appPackage","com.example.android.apis", null, null); // javascript driver.startActivity({appPackage: 'com.example.android.apis', appActivity: '.Foo'}, cb); # python driver.start_activity('com.example.android.apis', '.Foo') # ruby start_activity app_package: 'io.appium.android.apis', app_activity: '.accessibility.AccessibilityNodeProviderActivity' // c# driver.StartActivity("com.example.android.apis", ".Foo"); // php $this->startActivity(array("appPackage" => "com.example.android.apis", "appActivity" => ".Foo")); // objective c [driver startActivity:@"com.example.android.apis" package:@".Foo"]; |
打开通知栏
打开通知栏,仅支持 Android。
// java driver.openNotifications(); // javascript driver.openNotifications(cb); # python driver.open_notifications() # ruby open_notifications // c# driver.OpenNotifications(); // php $this->openNotifications(); // objective c [driver openNotifications]; |
应用是否已安装
检测应用是否已被安装。
# ruby is_installed? "com.example.android.apis" # python driver.is_app_installed('com.example.android.apis') // java driver.isAppInstalled("com.example.android.apis") // javascript driver.isAppInstalled("com.example.android.apis") .then(function (isAppInstalled) { /*...*/ }) // php $this->isAppInstalled('com.example.android.apis'); // c# driver.IsAppInstalled("com.example.android.apis-"); // objective c [driver isAppInstalled:@"com.example.android.apis-"]; |
安装应用
在设备上安装应用。
# ruby install 'path/to/my.apk' # python driver.install_app('path/to/my.apk') // java driver.installApp("path/to/my.apk") // javascript driver.installApp("path/to/my.apk") // php $this->installApp('path/to/my.apk'); // c# driver.InstallApp("path/to/my.apk"); // objective c [driver installAppAtPath:@"path/to/my.apk"]; |
卸载应用
卸载设备上的应用。
# ruby remove 'com.example.android.apis' # python driver.remove_app('com.example.android.apis') // java driver.removeApp("com.example.android.apis") // javascript driver.removeApp("com.example.android.apis") // php $this->removeApp('com.example.android.apis'); // c# driver.RemoveApp("com.example.android.apis"); // objective c [driver removeApp:@"com.example.android.apis"]; |
摇一摇
模拟摇晃设备的操作。
# ruby shake # python driver.shake() // java driver.shake() // javascript driver.shake() // php $this->shake(); // c# driver.ShakeDevice(); // objective c [driver shakeDevice]; |
关闭应用
关闭应用。
# ruby close_app # python driver.close_app(); // java driver.closeApp() // javascript driver.closeApp() // php $this->closeApp(); // c# driver.CloseApp(); // objective c [driver |
启动(Launch)
为 desired capabilities 启动一个 session。请注意只有设置了 autoLaunch=false 关键字时才会生效。这不是为了随意启动一个应用或 activities ——如果你想这么做,请使用 start_activity 这个 desired capability 的参数。这个方法的使用场景是在你设置了 autoLaunch=false 后,用来继续执行初始化("launch")流程的。(译者注:举个例子,国产系统经常会在应用安装时弹出提示窗阻碍安装,此时可以通过 autoLaunch=false 来让应用安装后先执行你的脚本来关掉弹窗,然后再用这个函数来继续启动应用。)
# ruby launch_app # python driver.launch_app() // java driver.launchApp() // javascript driver.launchApp() // php $this->launchApp(); // c# driver.LaunchApp(); // objective c [driver launchApp]; |
重置
重置应用。(译者注:类似于清除缓存)
# ruby driver.reset # python driver.reset() // java driver.resetApp() // javascript driver.resetApp() // php $this->reset(); // c# driver.ResetApp(); // objective c [driver resetApp]; |
可用的上下文(Contexts)
列出所有可用的上下文(contexts)。
# ruby context_array = available_contexts # python driver.contexts // java driver.getContextHandles() // javascript driver.contexts().then(function (contexts) { /*...*/ }) // php $this->contexts(); // c# driver.GetContexts() // objective c NSArray *contexts = driver.allContexts; |
当前上下文(context)
列出当前的上下文(context)。
# ruby context = current_context # python driver.current_context // java driver.getContext() // javascript driver.currentContext().then(function (context) { /*...*/ }) // php $this->context(); // c# driver.GetContext() // objective c NSString *context = driver.context; |
切换至默认的上下文(context)
切换回默认的上下文(context)。(译者注:一般就是原生上下文 “NATIVE_APP”)
# ruby switch_to_default_context # python driver.switch_to.context(None) // java driver.context(); // javascript driver.context() // php $this->context(NULL); // c# driver.SetContext(); // objective c [driver setContext:nil]; |
应用的字符串
获得应用的字符串。(译者注:这里实际指的是返回应用的多语言文本,即每个 string 变量及在指定语言上的显示内容。例如 {"action_forgot_password":"Forgot your password?"} 。在 android 上对应的是项目中的 strings.xml 多语言配置文件)
# ruby app_strings # python driver.app_strings // java driver.getAppStrings(); // javascript driver.getAppStrings().then(function (appStrings) { /*...*/ }) // php $this->appStrings(); $this->appStrings('ru'); // c# driver.GetAppStrings(); // objective c [driver appStrings]; [driver appStringsForLanguage:"@ru"]; |
按键事件
给设备发送按键事件。
# ruby key_event 176 # python driver.keyevent(176) // java driver.sendKeyEvent(AndroidKeyCode.HOME); // javascript driver.deviceKeyEvent(wd.SPECIAL_KEYS.Home) // php $this->keyEvent('176'); // c# driver.KeyEvent("176"); // objective c NSError *err; [driver triggerKeyEvent:176 metastate:0 error:&err]; |
当前 Activity
获取当前的 Acticity。仅支持 Android。
# ruby current_activity # python driver.current_activity // java driver.currentActivity(); // javascript driver.getCurrentActivity().then(function (activity) { /*...*/ }) // php $this->currentActivity(); // c# driver.GetCurrentActivity(); // objective c NSError *err; [driver currentActivity]; |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。