1界面
在appium 主界面host 上输入127001 然后点击start server 即可开启appium
2点击Advanced 选项
3appium server 界面
点击放大镜可以开启会话,开启会话页面详情。
adbName: 设备名称。appium 可以通过此属性找到对应的设备进行通讯。
获取方式: adb devices
appPackage: 应用包名。通过此属性,appium 得知需要和哪个app 进行通讯。
获取方式: adb shell dumpsys activity | 'mFocusedActivity'
appActivity: 应用的入口activity,通过属性,可以开启app。在sdk--build tools 目录下找到aaptexe 工具,执行aapt dump badging apk 对应的路径信息。这里只截取了部分。供参考撒。
注意!: apk的后缀必须是apk,我用exe 试了是获取不到的;apk 的路径下不能有中文。
platformName: 平台名,android 的话就是Android ;ios 的话就是IOS
noReset: 不重置应用数据。如果noRest = false,appium 执行的时候会将应用的数据清除;反之,noReset = true, 则appium 执行的时候不会清除数据。不加该字段默认值为false。
所有的字段修改完成之后,点击save 进行保存 *** 作。
参考官方描述,需要打开Springboard,且确保 WDA 可见,以此打开 WDA,然后调用获取剪贴板的接口,最后再返回原来的待测APP:
例子:
selfdriveractivate_app('comapplespringboard')
selfdriverfind_element_by_accessibility_id('WebDriverAgentRunner-Runner')click()
pasteboard_text =selfdriverget_clipboard_text()
selfdriveractivate_app(bundle_id_of_app_to_test) # 此处参数为待测APP的bundleid
Python下的爬虫库,一般分为3类。
抓取类
urllib(Python3),这是Python自带的库,可以模拟浏览器的请求,获得Response用来解析,其中提供了丰富的请求手段,支持Cookies、Headers等各类参数,众多爬虫库基本上都是基于它构建的。建议学习了解一下,因为有些罕见的问题需要通过底层的方式解决。
requests,基于urllib,但是更方便易用。强烈推荐掌握。
解析类
re:正则表达式官方库,不仅仅是学习爬虫要使用,在其他字符串处理或者自然语言处理的过程中,这是绕不过去的一个库,强烈推荐掌握。
BeautifulSoup:方便易用,好上手,推荐掌握。通过选择器的方式选取页面元素,并获取对应的内容。
lxml:使用
lxmletree
将字符串转换之后,我们可以使用XPath表达式来解析网页,终极推荐。XPath对于网页解析的支持非常强大,而且很容易上手。它本来是设计出来进行XML元素选择的,但是它同样支持HTML。pyquery:另一个强大的解析库,感兴趣的可以学习下。
综合类
selenium:所见即所得式爬虫,综合了抓取和解析两种功能,一站式解决。很多动态网页不太容易通过requests、scrapy直接抓取,比如有些url后边带了加密的随机数,这些算法不太好破解,这种情况下,只能通过直接访问网址、模拟登陆等方式请求到页面源码,直接从网页元素中解析内容,这种情况下,Selenium就是最好的选择。不过Selenium最初设计出来,是用于测试的。强烈推荐。
scrapy:另一个爬虫神器,适合爬取大量页面,甚至对分布式爬虫提供了良好的支持。强烈推荐。
以上这些是我个人经常使用的库,但是还有很多其他的工具值得学习。比如Splash也支持动态网页的抓取;Appium可以帮助我们抓取App的内容;Charles可以帮助我们抓包,不管是移动端还是PC网页端,都有良好的支持;pyspider也是一个综合性的框架;MySQL(pymysql)、MongoDB(pymongo),抓到了数据就要存储,数据库也是绕不过去的。
掌握了以上这些,基本上大部分的爬虫任务都难不倒你啦!
1Command 'E\:\\Development\\Android\\SDK\\platform-tools\\adbexe -P 5037 -s 127001\:62001 shell getprop robuildversionrelease' exited with code 3221226356'; Stderr: ''; Code: '3221226356
原因:adb版本问题,在cmd执行adb version命令发现adb的版本为2900-XXXX
解决方法:升级adb版本,可通过Android studio>tools>sdk manager>Appearance&Behavior > System Setting >Android SDK>SDK tools升级Android SDK Platform-Tools 到2902,adb版本即升级成功,问题解决
2页面从首页切换到第二个页面后,无法定位元素,使用selfdriverpage_source方法获取页面信息无反应。使用XPATH="//"查找元素。发现得到的元素是首页的元素
原因:Android 70切换Activity的bug,需要使用UiAutomator2测试
解决方法:selfdesired_caps['automationName'] ='UiAutomator2'
3切换UiAutomator2后,adbexe -P 5037 -s 1d6f926c shell pm install /data/local/tmp/appium_cache/56abf1bf10f6562619a2dd8fb060718e27c4cb28apk命令执行失败
原因:手动在cmd执行命令,返回Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install ioappiumuiautomator2server without first uninstalling],但实际上手机上找不到该apk。使用adb shell pm list packages 发现package: ioappiumuiautomator2server
解决方法:手动执行adb uninstall package: ioappiumuiautomator2server卸载
adb devices获取设备名
adb -s 设备名 tcpip:端口号,比如adb -s devicename tcpip:5555,这样写可以解决连接不到设备的问题
adb connect ip:端口号,比如adb connect 19216801:5555
然后就可以看到设备连接成功了
往指定的手机安装app
adb -s 19216801:5555 install xxxapk
目前的解决办法:以华为手机为例,打开设置,找到启动管理(有的在应用和通知中,有的在电池中)把ioappiumuiautomator2server 和ioappiumuiautomator2servertest 等与appium相关的程序,自动管理改成手动管理
如果运行一段时间再出现问题,就看一下电池配置,位置在 设置 -> 电池 -> 后台高耗电, 把 appium 相关的app都加上,允许其在后台高耗电时继续运行,然后再运行appium 自动化测试
其实就是检查页面某一固定的元素是否存在。
可以用assert断言,当然也可以自己写if语句进行判断。
assert用得比较多,举例说明:
例如,登录成功后的界面,某个固定控件包含字符串“aaa”,找到,则证明登录成功。
assertEqual('aaa',driverfind_elements_by_class_name("androidwidgetEditText")text)
assertEqual()只是其中一个方法。
断言的用法还有很多,感兴趣可以百度一下。
以上就是关于appium desktop 使用简介全部的内容,包括:appium desktop 使用简介、appium iOS真机获取剪贴板内容、Python什么爬虫库好用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)