Hero is coming back

风吹呀吹

风会指引你前进的方向

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
 

 

posted @ 2020-03-20 16:21  风吹呀吹  阅读(410)  评论(0编辑  收藏  举报