appium desktop 使用简介

appium desktop 使用简介,第1张

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什么爬虫库好用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9438691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存