Appium
1.下载appium桌面版本后,启动inspector 需要配置 apppackage 和 appactivity ,如何简单的获取?
在已安装适当版本的JDK与SDK后,运行cmd 输入
adb shell dumpsys window windows | findstr "Current"
命令会显示当前模拟器界面应用的apppackage 和 appactivity
2.appium如何连接真机?
1.手机usb连接电脑,手机开启USB调试
2.测试手机是否已连接电脑,cmd运行,得到手机的名字
adb devices
3.获取appium连接手机需要的appPackage与appActivity,打开对应的app,电脑cmd运行
adb shell dumpsys activity recents find "intent={"
得到一下信息,第一行中的{}内,便是apppackage 和 appactivity
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.tencent.mm/.ui.LauncherUI}
3.appium如何连接MuMu模拟器
1.前提:已经安装JDK,SDK,APPIUM,MuMu模拟器
2.需要手动连接MuMu模拟器的服务地址,打开cmd输入,连接成功。
adb connect 127.0.0.1:7555
4.查看当前手机或模拟器的输入法
cmd输入
adb shell ime list -s
5.微信如何定位网页元素?
许多微信小程序都内置html元素,appium内置定位无法使用,需要使用chrome自带的adb定位
1.首先需要开启微信【TBS内核Inspector调试功能】
微信扫描二维码➡信息➡打开TBS内核Inspector调试功能
2.确保手机或模拟器已经连接电脑,cmd运行 adb devices 查看
3.使用chrome定位元素,访问地址
chrome://inspect/#devices
如果以上设置正确,便可以看到相对的微信小程序,点击insepect就可以查看对应的网页元素了
6.通过cmd执行adb命令模拟按键事件 KeyCode
通过adb命令可以方便的控制androd系统执行命令
C#中可以通过运行cmd程序执行adb命令
以下代码可以运行cmd并且输入命令输出结果
string str = "adb shell input keyevent 66"; System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 p.StartInfo.RedirectStandardError = true;//重定向标准错误输出 p.StartInfo.CreateNoWindow = false;//不显示程序窗口 p.Start(); //向cmd窗口发送输入信息 p.StandardInput.WriteLine(str + "&exit"); p.StandardInput.AutoFlush = true; //p.StandardInput.WriteLine("exit"); //向标准输入写入要执行的命令。这里使用&是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令,如果不执行exit命令,后面调用ReadToEnd()方法会假死 //同类的符号还有&&和||前者表示必须前一个命令执行成功才会执行后面的命令,后者表示必须前一个命令执行失败才会执行后面的命令 //获取cmd窗口的输出信息 string output = p.StandardOutput.ReadToEnd(); //StreamReader reader = p.StandardOutput; //string line=reader.ReadLine(); //while (!reader.EndOfStream) //{ // str += line + " "; // line = reader.ReadLine(); //} p.WaitForExit();//等待程序执行完退出进程 p.Close(); Console.WriteLine(output);
常用ADB按键模拟命令:Click Here
7.Chrome app,混合app应用调试如何设置。
背景:只测试了chome浏览器,并且chrome浏览器是正式版本,不是beta版本
1.纯chorme app
配置的时候设置 broswername 为 chrome 【这一步相当于使用selenium的IWebDriver,并且自动配置了package和activity】,
配置的时候要设置driver的地址
appiumOptions.AddAdditionalCapability("browserName", "Chrome");
appiumOptions.AddAdditionalCapability("chromedriverExecutable", @"C:\Users\szsm.tangpeng\Desktop\Frank\driver\chromedriver.exe");
2.混合应用
配置package和activity,进入应用后,遇到webview后切换,使用语句
driver.Context = driver.Contexts[1];
//contexts中包含了navtive app 和所有的webview,找到对应的webview切换过去
7.ADB命令,如何查看当前app进程id
//查看手机当前页面的app进程 adb shell dumpsys activity top | findstr ACTIVITY //查看手机指定进程的信息 adb shell ps 9566
Appium Error: Cannot find any free port in range 8200..8299
//清除所有相关端口
adb -s $udid forward -remove-all