1、安装JDK
2、安装SDK、安装android studio
3、脚本编写
1、安装JDK
这里分享一个下载的链接密码是:x4nw,具体的网上又很多,请自行参照
2、安装SDK,安装android studio
为什么写在一起呢,因为你直接下一个android studio就行了,然后创建一个项目,他就会下载全部的依赖,就都会有了,点这个地方,你就会看到有你的sdk的地址,然后在终端配置环境变量
android studio的官网下载地址:官网
另外因为我sdk和android studio是分开下的,然后我遇到一个问题是:我只有一个tools文件,其他很多文件都没有,解决办法也是从官网去下载没有的目录,然后直接复制进目录里面
3、脚本编写:(我这里用的真机 oppoR9s 安卓版本:8.0.1)
4.1、OPPO打开开发者模式,打开usb调试,在终端输入
adb devices
4.2、打开appium 配置JDK和SDK
4.3、点击start server,点击这个放大镜🔍
4.4、配置真机的信息到apium(四项必填)
{
“platformName”: “Android”,
“platformVersion”: “8.01”,
“udid”: “f011acdc”,这个就是adb出来的东西填这里
“deviceName”: “vivo”
}
到这里为止,你就可以通过appium来查看手机的元素,来选选看用什么来定位你的元素吧,接下来要讲到的就是怎么用代码调用:这里参考的是:🙏红发大佬的无私奉献,人间有爱
代码如下:
创建一个:desired_capabilities.py的文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def get_desired_capabilities():
desired_caps = {
"platformName": "Android",
"platformVersion": "6.0.1",
"udid": "d1bbcae2",
"automationName": "Appium",
"deviceName": "OPPO",
#bundleid 如果没有填 app 地址,填了这个 id 就会直接运行已安装的 app
'bundleId': 'com.aihuishou.airent',
"unicodeKeyboard": True,
"resetKeyboard": True,
"autoGrantPermissions": True,
#超时时间
'newCommandTimeout': 60,
#是否不重新安装启动
"noReset": True
}
return desired_caps
def get_uri():
return 'http://localhost:4723/wd/hub'```
创建一个:mian.py的文件
#!/usr/bin/python
-- coding: UTF-8 --
from appium import webdriver
import desired_capabilities
import time
from time import sleep
import unittest
class AndroidTest(unittest.TestCase):
@classmethod
def setUpClass(self):
desired_cap = desired_capabilities.get_desired_capabilities()
uri = desired_capabilities.get_uri()
self.driver = webdriver.Remote(uri,desired_cap)
@classmethod
def tearDownClass(self):
self.driver.quit()
def wait_for_element(self,xpath=None, id=None, index=None, timeOut=20):
startTime = time.time()
nowTime = time.time()
while nowTime - startTime < timeOut:
try:
if xpath is not None:
el = self.driver.find_element_by_xpath(xpath)
return el
except:
pass
try:
if id is not None:
if index is not None:
return self.driver.find_element_by_id(id)[index]
else:
return self.driver.find_element_by_id(id)
except:
pass
sleep(1)
nowTime = time.time()
raise Exception("Element xpath[%s] id[%s] index[%s] is not found" % (xpath, id, index))
def test_a_utFrame(self):
print(self.driver.current_activity)
self.wait_for_element(id="com.aihuishou.airent:id/iv_item").click()
if name==‘main’:
suite = unittest.TestSuite()
suite.addTest(AndroidTest(“test_a_utFrame”))
unittest.TextTestRunner(verbosity=2).run(suite)
> 在这里遇到的两个问题是:from appium import webdriver的时候报错的
> 解决办法是:在终端执行:`pip install Appium-Python-Client`
>
> from selenium 也是报错的
> 解决办法是:在终端执行:pip install Selenium
点击运行,此刻你的手机已经完全被代码控制了,开心~😂