{"id":1244,"date":"2022-07-21T16:00:06","date_gmt":"2022-07-21T08:00:06","guid":{"rendered":"http:\/\/175.24.184.226\/?p=1244"},"modified":"2024-04-26T10:44:01","modified_gmt":"2024-04-26T02:44:01","slug":"appium","status":"publish","type":"post","link":"\/?p=1244","title":{"rendered":"appium"},"content":{"rendered":"<h2>\u4e00\u3001\u6982\u5ff5<\/h2>\n<p>\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u5de5\u5177\uff0c\u7c7b\u4f3cselenium\uff0c\u652f\u6301IOS\u4e0e\u5b89\u5353\u5e73\u53f0\u7684\u539f\u751f\u7684\uff0c\u57fa\u4e8e\u79fb\u52a8\u6d4f\u89c8\u5668\u7684\uff0c\u6df7\u5408\u7684\u5e94\u7528<br \/>\n\u53ef\u4ee5\u7528\u4ee3\u7801\u9a71\u52a8Appium\u53bb\u9a71\u52a8\u79fb\u52a8\u7aef\u7684\u7a0b\u5e8f<br \/>\n\u67b6\u6784\uff1a<br \/>\nNode.js\u7f16\u5199\u7684HTTP server\uff0c\u521b\u5efa\u5e76\u7ba1\u7406\u591a\u4e2a\u6587\u672cdriver session\u6765\u548c\u4e0d\u540c\u7684\u5e73\u53f0\u4ea4\u4e92<br \/>\n\u73af\u5883\uff1a<br \/>\nNode.js\u2014\u2014\u53ef\u4ee5\u5f00\u53d1\u670d\u52a1\u7aef\u7a0b\u5e8f(<a href=\"https:\/\/nodejs.org\/zh-cn\/\">https:\/\/nodejs.org\/zh-cn\/<\/a>)<br \/>\nJAVA JDK\u2014\u2014JAVA\u73af\u5883(<a href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-jdk16-downloads.html\">https:\/\/www.oracle.com\/java\/technologies\/javase-jdk16-downloads.html<\/a>)<br \/>\nAndroid  SDK\u2014\u2014Android\u4e13\u5c5e\u7684\u8f6f\u4ef6\u5f00\u53d1\u5de5\u5177\u5305(<a href=\"https:\/\/www.androiddevtools.cn\/\">https:\/\/www.androiddevtools.cn\/<\/a>)<br \/>\nAppium(<a href=\"https:\/\/github.com\/appium\/appium-desktop\/releases\/tag\/v1.21.0\">https:\/\/github.com\/appium\/appium-desktop\/releases\/tag\/v1.21.0<\/a>)<\/p>\n<h2>\u4e8c\u3001 JavaJDK\/Android  SDK\u73af\u5883\u914d\u7f6e<\/h2>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGVtb25fZ3Vlc3M=,size_15,color_FFFFFF,t_70,g_se,x_16.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGVtb25fZ3Vlc3M=,size_11,color_FFFFFF,t_70,g_se,x_16.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>1.<br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xlbW9uZ3Vlc3M=,size_16,color_FFFFFF,t_70.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>2.path<br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xlbW9uZ3Vlc3M=,size_16,color_FFFFFF,t_70-1714099191988-1.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h2>\u4e09\u3001\u6d4b\u8bd5\u6b65\u9aa4<\/h2>\n<h3>1.USB\u6570\u636e\u7ebf\uff0c\u5f00\u542f\u624b\u673aUSB\u8c03\u8bd5\u6a21\u5f0f<\/h3>\n<p>\u6a21\u62df\u5668-\u591c\u795e\u6a21\u62df\u5668<br \/>\n\u53ef\u80fd\u51fa\u73b0\u7684\u62a5\u9519\uff1aadb server version(36) doesn't match this client(41)<br \/>\n\u539f\u56e0\uff1a\u624b\u673a\u6a21\u62df\u5668\u4e0eAndroid SDK\u7684adb\u5de5\u5177\u4e0d\u5339\u914d\uff0c\u9700\u8981\u628aAndroid SDK\u7684adb.exe\u590d\u5236\uff0c\u653e\u5165\u6a21\u62df\u673a\u7684\u5b89\u88c5\u76ee\u5f55\u4e2d\uff0c\u66ff\u6362nox_adb.exe\u3002<\/p>\n<h3>2.cmd\u547d\u4ee4<\/h3>\n<p>adb version \u67e5\u770b\u7248\u672c<br \/>\nadb devices \u67e5\u770b\u5df2\u8fde\u63a5\u7684\u8bbe\u5907<\/p>\n<h3>3.\u8c03\u8bd5<\/h3>\n<p>\u9700\u8981\u7f16\u5199\u81ea\u52a8\u5316\u7a0b\u5e8f\uff0c\u9996\u5148\u5c31\u9700\u8981\u80fd\u591f\u5b9a\u4f4d\u5143\u7d20<br \/>\n\u4f7f\u7528appium<br \/>\nDesired Capabilities:\u53d1\u9001\u7ed9Appium\u670d\u52a1\u5668\u7684\u952e\u503c\u5bf9\u96c6\u5408\uff08\u53ef\u4ee5\u7406\u89e3\u6210\u53d1\u9001HTTP\u8bf7\u6c42\uff09<br \/>\n{<br \/>\n1.\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b<br \/>\n2.\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c<br \/>\n3.\u94fe\u63a5\u7684\u624b\u673a\u4fe1\u606f<br \/>\n4.\u5e94\u7528\u7684\u5305\u540d<br \/>\n5.activity<br \/>\n}<br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xlbW9uZ3Vlc3M=,size_16,color_FFFFFF,t_70-1714099191988-2.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/20210714071630818.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/20210714071713459.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/20210714071940313.png\" alt=\"\u53ef\u4ee5\u62ff\u5230APP\u7684package\" \/><\/p>\n<pre><code>dumpsys activity |grep mFocusedActivity<\/code><\/pre>\n<p><strong><em>\u53ef\u4ee5\u62ff\u5230\u5f53\u524d\u8fd0\u884c\u624b\u673a\u5e94\u7528\u7684package\u548cactivity<\/em><\/strong><br \/>\n<img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/20210714072135518.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><br \/>\nJSON Representation<\/p>\n<pre><code>{\n  \"platformName\": \"Android\",\n  \"platformVersion\": \"5\",\n  \"deviceName\": \"127.0.0.1:62001\",\n  \"appPackage\": \"com.sina.weibo\",\n  \"appActivity\": \".VisitorMainTabActivity\"\n}<\/code><\/pre>\n<h2>\u56db\u3001python\u64cd\u4f5c<\/h2>\n<pre><code class=\"language-bash\">pip install Appium-Python-Client<\/code><\/pre>\n<p>from appium import webdriver<\/p>\n<h1>\u914d\u7f6e\u952e\u503c\u5bf9\u4fe1\u606f<\/h1>\n<p>caps = {<br \/>\n&quot;platformName&quot;: &quot;Android&quot;,<br \/>\n&quot;platformVersion&quot;: &quot;5&quot;,<br \/>\n&quot;deviceName&quot;: &quot;127.0.0.1:62001&quot;,<br \/>\n&quot;appPackage&quot;: &quot;com.netease.cloudmusic&quot;,<br \/>\n&quot;appActivity&quot;: &quot;.activity.MainActivity&quot;<br \/>\n}<\/p>\n<h1>\u94fe\u63a5Appium\u670d\u52a1\u5668,\u6253\u5f00\u5e94\u7528\uff0c\u8fd4\u56de\u9a71\u52a8\u5bf9\u8c61driver\uff0c\u63a5\u4e0b\u6765\u5c31\u548cselenium\u7684\u64cd\u4f5c\u51e0\u4e4e\u4e00\u6837<\/h1>\n<p>webdriver.Remote('<a href=\"http:\/\/127.0.0.1:4723\/wd\/hub&#039;,caps\">http:\/\/127.0.0.1:4723\/wd\/hub',caps<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u6982\u5ff5 \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u5de5\u5177\uff0c\u7c7b\u4f3cselenium\uff0c\u652f\u6301IOS\u4e0e\u5b89\u5353\u5e73\u53f0\u7684\u539f\u751f\u7684\uff0c\u57fa\u4e8e\u79fb\u52a8\u6d4f\u89c8\u5668\u7684\uff0c\u6df7\u5408\u7684\u5e94\u7528 \u53ef\u4ee5\u7528\u4ee3\u7801\u9a71\u52a8A   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[86],"tags":[],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1244"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1244"}],"version-history":[{"count":2,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1244\/revisions"}],"predecessor-version":[{"id":9269,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1244\/revisions\/9269"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1244"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}