谢谢支持!
自己坐个沙发。
你那个直接获取元素的宽高是不准确的,你要获取滑动的坐标点位置,然后去滑动。
坐标点获取可以使用绝对坐标或者相对坐标,我的博客有关于滑动的实践,你可以参考一下:
Appium 服务是否指定 pb 端口。我的博客有详细的操作实践,可以参考:Appium 多进程并发测试
什么时候开课啊,是网络课程吗?
目前使用了一种替代方案实现了缩放,结合 MultiAction 和 TouchAction。
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
# 放大
def zoom():
action1 = TouchAction(driver)
action2 = TouchAction(driver)
zoom_action = MultiAction(driver)
action1.press(x=x*0.4, y=y*0.4).move_to(x=x*0.1, y=y*0.1).wait(500).release()
action2.press(x=x*0.6, y=y*0.6).move_to(x=x*0.8, y=y*0.8).wait(500).release()
print('start zoom...')
zoom_action.add(action1, action2)
zoom_action.perform()
# 缩小
def pinch():
action1=TouchAction(driver)
action2=TouchAction(driver)
pinch_action=MultiAction(driver)
action1.press(x=x*0.1, y=y*0.1).move_to(x=x*0.4, y=y*0.4).wait(500).release()
action2.press(x=x*0.8, y=y*0.8).move_to(x=x*0.6, y=y*0.6).wait(500).release()
print("start pinch...")
pinch_action.add(action1, action2)
pinch_action.perform()
补充一下测试环境:
你用的是什么模拟器啊,建议你重启下 Appium 服务和模拟器看看。
使用 appium-doctor 先做个全面体检吧:
1.安装 appium-doctor: npm install appium-doctor -g
2.在控制台输入命令:appium-doctor 看到如下提示说明整体环境配置成功。
C:\Users\Shuqing>appium-doctor
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ The Node.js binary was found at: D:\program files\nodejs\node.exe
info AppiumDoctor ✔ Node version is 6.11.3
info AppiumDoctor ✔ ANDROID_HOME is set to: E:\Andriod_sdk
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_05
info AppiumDoctor ✔ adb exists at: E:\Andriod_sdk\platform-tools\adb.exe
info AppiumDoctor ✔ android exists at: E:\Andriod_sdk\tools\android.bat
info AppiumDoctor ✔ emulator exists at: E:\Andriod_sdk\tools\emulator.exe
info AppiumDoctor ✔ Bin directory of %JAVA_HOME% is set
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
这个是由于你的 toast 内容为中文,由于字符编解码问题导致不能识别,需要在代码顶部写注释如下即可
# coding=utf-8
站在测试角度我觉得选自己最能上手的语言完成就好,就拿我之前公司产品来说底层是 C,C++ ,应用层是 C# 来开发的。我不能能花大量时间把 C++,C# 语言学习精通(而且光 C++ 这门语言门槛就不低了)。
首先将各个功能模块进行独立封装,比如封装登录操作 def login():, 退出操作:def logout():
。伪代码如下:
def login():
def logout():
然后你接下来要设计的测试用例是先登录再退出,就可以再封装一个方法比如 def test_loginout_action() 在这个方法先调用登录,再调用退出。
def test_loginout_action()
def login():
def logout():
外包现在确实不值得去了,最主要还是扎扎实实提高自身实力。
身体是革命的本钱。
繁体字,台湾同胞吗?
好的,知道了。谢谢!
基于楼上的答案,这里封装为一个方法如下:
def kill_appiumServer(self,port):
#查找对应端口的pid
cmd_find='netstat -aon | findstr %s' %port
print(cmd_find)
result = os.popen(cmd_find)
text = result.read()
pid=text[-5:-1]
#执行被占用端口的pid
cmd_kill='taskkill -f -pid %s' %pid
print(cmd_kill)
os.popen(cmd_kill)
appium desktop 都是封装好的,无法使用命令来启动。另外想问一下,你那边关闭 appium 服务是怎么实现的?是用 taskkill /f 直接全部关闭 node.exe 进程还是其他方式呢?
将 stdout=stdout=subprocess.PIPE 改为:stdout=open('E:/logs.log','a') 就可以了。
是我们公司的一个智能家居事业部的指纹锁,3000 多一把。具体就不说品牌名称了(怕被 HR 看到请去喝茶。。)老板朋友出于情义买了一把,结果出了这个闹剧,客户电话还打不通。老板把相关负责人骂了一顿,太打脸了。
还有看似高大上的指纹锁,结果客户买了晚上按指纹进不了家门,求客户心理阴影面积。。。
Appium Server 就是 Appium 的服务端——一个 web 接口服务,使用 Node.js 实现。引用官网解释说明。
Appium is a server written in Node.js. It can be built and installed from source or installed directly from NPM:
$ npm install -g appium
$ appium
Appium Desktop 是一款适用于 Mac,Windows 和 Linux 的开源应用程序,它以美观而灵活的用户界面为您提供 Appium 自动化服务器的强大功能。 它是几个 Appium 相关工具的组合:
Appium Desktop 与 Appium 不同。 Appium Desktop 是 Appium 的图形前端,带有其他工具。 Appium Desktop 以其自己的节奏发布,并拥有自己的版本控制系统。
就像国内很多定制的 Android 系统有自己版本号,但是都是基于一个 Android 系统版本封装的。版本号不一定与 Andriod 原生系统版本号一致。如:魅族的 flyme6.0 系统的内核是 Android 5.1
Appium GUI 是 Appium desktop 的前身。
这个也是把 Appium server 封装成了一个图形界面,降低使用门槛,如同最初的操作系统 Dos 都是敲命令,后面都是图形界面操作系统,如 Windows 系统。很多初学者对下面这个界面应该不陌生吧,这个就是 Windows 版本的 Appium GUI 界面。测试人员可以手动启动,配置相关 server 服务,如果不用这个启动的话,需要命令启动服务。因为大部分教程都是基于这个 GUI 来讲解的,所以很多人一说 Appium 就认为是这个。
该产品的 Windows 版本在 2015 年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的 Appium 版本,而是 1.4.16 版本。如果要使用最新的桌面版需要使用Appium Desktop。
因为 Appium 是一个 C/S 结构,有了服务端的肯定还有客户端,Appium Clients 就是客户端,它会给服务端 Appium Server 发送请求会话来执行自动化任务。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。
Appium 客户端可以使用不同的语言来实现,如 Python,java 等。具体详见下表:
Language/Framework | Github Repo and Installation Instructions |
---|---|
Ruby | https://github.com/appium/ruby_lib |
Python | https://github.com/appium/python-client |
Java | https://github.com/appium/java-client |
JavaScript (Node.js) | https://github.com/admc/wd |
Objective C | https://github.com/appium/selenium-objective-c |
PHP | https://github.com/appium/php-client |
C# (.NET) | https://github.com/appium/appium-dotnet-driver |
RobotFramework | https://github.com/jollychang/robotframework-appiumlibrary |
离我们软件产业基地这边很近啊,你们那是海景办公室,我们这边除了百度大厦和腾讯大厦都看不到海了。。
好像就在那个航天大厦那边吧。