appium踩坑:Error: Failed to launch Appium Settings app: Cannot start the ‘io.appium.settings‘ applicat appium server完整报错信息:Error: Failed to launch Appium Settings app: Cannot start the‘io.appium.settings’ application. Visithttps://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.mdfor troubleshooting. Origina
Django模型之内置类Class Meta Class Meta 作用:使用内部类来提供一些metadata,以下列举一些常用的meta:1,abstract:如下段代码所示,将abstract设置为True后,CommonInfo无法作为一个普通的Django模型,而是作为一个抽象基类存在,作用是为其他的类提供一些公有的属性。如Student会拥有三个属性,即name,age,home_group。利于公用信息的分解,避免重复编码。from django.db import modelsclass CommonInfo(models..
django 做 migrate 时 表已存在的处理方法 :django.db.utils.OperationalError: (1050, “Table ‘****‘ already exists) 文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误:django.db.utils.OperationalError: (1050, “Table ‘xxx’ already exists”)要处理这种情况,如果是数据表都已经存在了,在migrate时直接
Django 解决新建表删除后无法重新创建等问题 起因同步表的过程中,我手动将数据库中的一个表删除了,此时再去执行命令,发现不能再数据库中新建表了修改了表结构以后执行python3 manage.py migrate 报错:No changes detected所以进数据库把对应的表删除了,想着重新生成这张表.删除表以后执行:python3 manage.py makemigrations python3 manage.py migrate还是不能生成表,提示:No changes detected处理过程一、首先删除了app对应目
python-文件及文件夹操作 > 需要 import os > > . 表示当前目录 ..当前目录的父目录> > > > s=os.getcwd() #得到当前工作目录,即当前python脚本工作的目录路径> > D:\ss\py> > os.chdir(r'D:\ss') #改变工作目录> > os.curdir #表示当前目录('.')> >
Robot framework 生成MD5字符串 首先我们这里不使用网上很多的写个python函数来完成。RobotFramework提供了一个关键字Evaluate这个关键字,官方文档里是生成随机值。(实际操作等号是可以去掉的,后面的moudles=也是可以去掉的)${random} = Evaluate random.randint(0, sys.maxint) modules=random, sys有这个关键字,我们可以定义一个用户关键字来生成MD5字符串。如下。使用hashlib模块。获取MD5[Arguments] ${st
xpath取页面最后一个元素 xpath取最后一个元素取xpath最后一个android.view.ViewGroup元素android.view.ViewGroup[last()]取xpath倒数第二个android.view.ViewGroup元素android.view.ViewGroup[last()-1]
robotframework中运用Run Keyword If报错:Keyword ‘BuiltIn.Log‘ expected 1 to 6 arguments, got 7. 解决:忘记添加run keywords
RobotFramework使用技巧篇--Run Keyword If基础用法以及多判断条件多执行动作用法 Run Keyword If语法 Run Keyword If [判断条件] [执行动作]示例:注意判断条件中,如果判断的对象,是字符串,需要打上“”,如果是布尔型,RF内识别变量为True,False。Run Keyword If [判断条件][执行动作]… Else If [判断条件][执行动作]… Else [执行动作]示例:Run Keyword If还有许多其他妙用的同类关键字,例举一些,详细用法可查看RF的关键字说明: run keywordRun .
appnium 自动化操控多台设备执行报错:A session is either terminated or not started 添加参数 newCommandTimeout 相当于保活吧 。def andriod_driver(device_id, port): desired_caps = { 'platformName': 'Android', 'deviceName':'m3_note', 'udid': device_id, 'appPackage': APP_PACKAGE, 'appActivity': APP_ACTIVITY.
RobotFramework执行报错“FOR loop contains no keywords.” 最近在看RobotFramework的For循环结构,在RIDE中编写的脚本如下图:执行结果报 FOR loop contains no keywords. 如下图回头看了下,之前脚本中输入的是 :FOR,但实际显示的是FOR,冒号没了?避坑方法:在FOR循环语句结束行加上END,就可以成功运行了。如下图执行结果如下:...
robotframework采坑系列:for语句、if语句、Run Keyword And Ignore Error 参考:RobotFrameWork(六)控制流之For循环RobotFrameWork(五)控制流之if语句——Run Keyword If
robotframwork+appium 元素坐标的获取及计算方法 问题背景:有时候appium-desktop不能获取到弹出的view中的元素信息,需用通过元素坐标的方式点击元素,而不同设备的分辨率不一样,导致x,y轴的值不一样,需要有一种通用的方法计算,计算的思路如下:1、计算出弹出view的坐标信息,计算思路是 通过关键字:Get Element Location算出view的左上角的x1,y1的值,再通过Get Element size算出vie的height和width,2、计算出被点击元素的的横坐标与view长度的比例rate: 随便找一个设备根据ap.
Robotframework自动化常见问题总结--(基础篇) 经常有人问这个元素找不到,一般先排除这两个地方,再自己找找 A:是否等待了足够的时间让元素加载 (增加sleep xx, wait Until xxx) B: 仔细查查,这个元素是否进入到另一个frame了 (select frame xxx)上面两点都确定了还不行,那改变下xpath的方法下面的方法掌握了,基本上没有找不到的。 C:xpath = //div[text()=‘web上显示的文本’] 根据文本匹配还有一文本前后可能有空格,特殊字符,可以用部分文本来匹配 D:xpath = /..
appium 出现报错 “could not connect to server are you sure it‘s running?“如何解决 我们直接打开的话,是到了Custom Server一栏的,但如果我们要用appium去定位元素的话,是需要去选择AutomaticServer一栏使用方法:1、用数据线与手机建立连接(使用adb命令:adb devices查看是否连接,并得出该手机的序列号)2、运行appium,并点击右上角的“搜索”符号3、编辑需要定位的程序的信息,并保存4、选择Automatic Server一栏,点击start session就能够进入到需要定位的界面了转载:https://www.cnbl..
Monkey测试及结果分析 adb shell monkey -s 1000 -p com.xy.bizportdemo --ignore-crashes --ignore-timeouts --pct-touch 75 --pct-motion 5 --pct-trackball 15 --pct-nav 0 --pct-majornav 0 --pct-syskeys 0 --pct-appswitch 0 --pct-anyevent 0 --pct-pinchzoom 3 --pct-flip 2 -v -v -v --thr
monkey测试技巧:安卓隐藏及恢复状态栏和虚拟按键 monkey压测时会遇到这种问题,只想在本包跑monkey,不想让monkey乱点出去,不然就再也点不进来了隐藏虚拟键及顶部状态栏:adb shell settings put global policy_control immersive.full=*隐藏顶部状态栏(底部虚拟键会显示):adb shell settings put global policy_control immersive.status=*隐藏虚拟键(顶部状态栏会显示):adb shell settings put glo
monkey测试中途停止进程 #注意:"ps-ef|grep monkey"要加上双引号,不然报错:'grep' 不是内部或外部命令,也不是可运行的程序或批处理文件。adb shell "ps-ef|grep monkey"adb shell kill 20344