官网:https://appium.readthedocs.io/en/latest/en/commands/mobile-command/#android

1、执行ADB shell命令(需要设置服务器标志 --relaxed-security

  *appium桌面版,在高级设置中可勾选

  *命令行启动appium,启动命令加上--relaxed-security。

appium --relaxed-security

2、相关执行代码介绍(C#)。

  *adb命令切换com.android.adbkeyboard/.AdbIME输入法,以及对应代码

adb shell ime set com.android.adbkeyboard/.AdbIME
Dictionary<string, Object> args = new Dictionary<string, object>();
args.Add("command", "ime set");
args.Add("args", "com.android.adbkeyboard/.AdbIME");
args.Add("includeStderr", true);
args.Add("timeout", );
driver.ExecuteScript("mobile: shell", args );

  *adb命令输入(输入中文必须安装ADBKeyboard.apk)

  *https://github.com/senzhk/ADBKeyBoard

adb shell am broadcast -a ADB_INPUT_TEXT --es msg '输入文本内容'
Dictionary<string, Object> args = new Dictionary<string, object>();
args.Add("command", "am broadcast");
args.Add("args", "-a ADB_INPUT_TEXT --es msg '输入文本内容'");
driver.ExecuteScript("mobile: shell", args );
  • command:远程命令的名称。也可以是可执行文件的完整路径。该参数是必需的。
  • args:一个字符串数组,传递给shell命令的参数。
  • includeStderr:将此参数设置为to true,以便将stderr输出与stdout一起包含在返回的结果中。如果启用,则返回的结果将是包含相应字符串的键stdoutstderr键的映射,否则它只是一个简单的字符串。false默认情况下。
  • timeout:shell命令超时(以毫秒为单位)。如果命令需要更多时间来完成执行,那么将抛出异常。默认为20000毫秒。

C#中appium自动化执行移动命令mobile:shell用法的更多相关文章

  1. Centos中使用Jenkins执行gulp命令:command not found

    在Centos操作系统,使用Jenkins的pipeline执行发布流程:jenkinsfile如下: stage("前端项目构架gulp") { steps { dir('src ...

  2. java中使用Process执行linux命令

    代码如下 BufferedReader reader = null; String cmd = "netstat -anp|grep :8080";//命令中有管道符 | 需要如下 ...

  3. vue项目中引入循环执行setInterval或者requestAnimationFrame的用法等

    项目中循环计时处理某些方法的情况还是比较常见的,一般会用setInterval来处理,但是这个方法会似的页面卡顿等使用体验不好. 所以就使用浏览器提供的requestAnimationFrame方法, ...

  4. (C#)Appium自动化测试之mobile:shell输入法

    1.ADB执行Shell命令 a.如果电脑上已装Appium,那么需要在高级设置里勾选 Relaxed Security. 如图:     b.cmd命令行启动appium appium --rela ...

  5. Linux系统中切换用户身份su与sudo的用法与实例

    日常操作中为了避免一些误操作,更加安全地管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:s ...

  6. appium自动化测试框架——在python脚本中执行dos命令

    一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip.device等:一种是不需要收集结果,如杀死或开启某个服务. 对应的在python中就要封装两种方法,来分别实现这两种需求. 1. ...

  7. App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...

  8. shell脚本中切换用户执行相应的命令或者shell脚本的方法

    通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce 但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令. 此时需要了解 su 命令中的参数 -c ...

  9. 解决idea中执行maven命令失败的问题

    1.问题描述 如上图所示,在使用idea 里的maven命令执行项目打包时,有时候会报如下一个错误. -Dmaven.multiModuleProjectDirectory system proper ...

随机推荐

  1. MsgWaitForMultipleObjects

    Use caution when calling the wait functions and code that directly or indirectly creates windows. If ...

  2. 洛谷P1033 自由落体 题解

    题目链接:https://www.luogu.org/problemnew/show/P1033 呵呵,真的学好物理比较重要,前些年卡在这题上的我今天终于会做了,可恶的自由落体(也许是我太弱了吧 ) ...

  3. 【HDOJ】1062 Text Reverse

    Ignatius likes to write words in reverse way. Given a single line of text which is written by Ignati ...

  4. STL 优先队列 用法

    今天做题用到了优先队列 对它的用法还不是很熟悉 现在整理一下. 需要的库 #include<queue> using namespace std; 不过我都用bits/stdc++.h.. ...

  5. laravel5.6 使用迁移创建表

    laravel 使用迁移创建表 创建迁移文件 --table 和 --create 选项可以用于指定表名以及该迁移是否要创建一个新的数据表.这些选项只需要简单放在上述迁移命令后面并指定表名: php ...

  6. python课堂整理13---函数的作用域及匿名函数

    name = 'alex' def foo(): name = 'jinling' def bar(): print(name) return bar a = foo() print(a) 阅读上述代 ...

  7. 程序员的长安十二时辰:Java实现从Google oauth2.0认证调用谷歌内部api

    最近公司在做一个app购买的功能,主要思路就是客户在app上购买套餐以后,Google自动推送消息到Java后端,然后Java后端通过订单的token获取订单信息,保存到数据库. Java后端要获取订 ...

  8. springboot整合mybatis时无法读取xml文件解决方法(必读)

    转    http://baijiahao.baidu.com/s?id=1588136004120071836&wfr=spider&for=pc 在springboot整合myba ...

  9. jsp数据交互(一).1

    一.jsp中java小脚本1.<% java代码段%>2.<% =java表达式%>不能有分号3.<%!成员变量和函数声明%>二.注释1.<!--html注释 ...

  10. Android Studio 设置/更改 SDK 路径

    网上看到有人说需要重启 Android Studio,感觉麻烦,就自己试了试其他方法,果然还是有的! 很简单,只需打开 File 菜单下的 Project Structure 就可以设置了,如图所示: