首先了由于本文并不是走的api破解或是apk逆向的路子,所以各位勿喷。其次经过验证appium加上模拟器的路子不太好除非你用真机做的(这类需求做游戏项目之内可以试试),当然可能是我没get到正确的姿势。最后本文由于幅度太长会分开两篇。本文是appium服务器多开,多线程控制不同app。。。。
#主配置篇#appium分装的函数
1模块
import selenium.webdriver.support.ui as ui
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from appium.webdriver.common.touch_action import TouchAction
import sys
import socket
import subprocess
import os
sys.path.append(os.path)
2函数#自己随便构建一个类class
2.1#检查端口占用
#检查端口占用
def isOpen(self,ip, port):
"""
本函数主要是检测本地开启的cmd有没有被占用,使用appium的端口,就是检测appium的server是否被占用,占用返回端口号,未被占用返回FALSE
:param ip: 由于appium在本地本片中是127.0.0.1,当然这个函数可以通用
:param port:当前开启的cmd窗口占用的端口
:return:返回被占用的端口号,或false
"""
#创建套接字,绑定套接字到本地IP与端口
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, int(port)))#尝试连接ip,和端口,连接失败报错,只有在cmd中存在该端口的情况下才能联通
s.shutdown(2) # 0代表禁止下次的数据读取;1代表禁止下次的数据写入;2代表禁止下次的数据读取和写入
print('%d 被占用' % port)
return port
except Exception:
return False
# 开启appium服务
关于socket点这
2.2#检测之后在未被占用的cmd中开启appium server
#开启appium server
def appium_start(self, host, port):
bootstrap_port = str(port + 1)#port自动加1,批量开启的情况下
# /b是不打开cmd