使用夜神模拟器的夜神多开器配置两台安卓模拟器并全部启动。
cmd中输入adb devices
可以看到连接上了两台安卓设备,若需要知道端口号与设备的对应关系,可以关闭一台安卓模拟器,再运行adb devices
。
这里我们关闭了夜神模拟器
的模拟器,如下图所示。
端口号为62001的设备状态为offline
,可见名称为夜神模拟器
的模拟器,其端口号为62001。
打开两个cmd。
其中一个cmd输入:
appium -p 4723 -U 127.0.0.1:62001 -bp 4724
含义是:
Server Port
为4723。UDID
为127.0.0.1:62001。Android Bootstrap Port
为4724。另一个cmd输入:
appium -p 4725 -U 127.0.0.1:62025 -bp 4726
含义是:
Server Port
为4725。UDID
为127.0.0.1:62025。Android Bootstrap Port
为4726。如图所示:
这样就完成了两个Appium Server的启动。
在脚本中通过对URL的修改,可以实现设备的切换。
(注意:脚本中的deviceName无论写什么,Appium都是使用的adb lists devices中的第一个。因此有些博客通过修改deviceName来实现设备的切换的做法是无效的)
首先将URL设置为http://127.0.0.1:4723/wd/hub
执行脚本效果为:
http://127.0.0.1:4723/wd/hub测试
然后将URL设置为http://127.0.0.1:4725/wd/hub
执行脚本效果为:
http://127.0.0.1:4725/wd/hub测试
这里给出Python代码
#coding=utf-8
'''
Created on 2017/12/24 0024
@author:Changge
'''
from appium import webdriver
import time
import threading
desired_caps = {
'platformName':'Android',
'deviceName':'127.0.0.1:62001',
'platformVersion':'5.1.1',
'appPackage':'com.taobao.taobao',
'appActivity':'com.taobao.tao.welcome.Welcome',
}
desired_caps2 = {
'platformName':'Android',
'deviceName':'127.0.0.1:62025',
'platformVersion':'4.4.2',
'appPackage':'com.taobao.taobao',
'appActivity':'com.taobao.tao.welcome.Welcome',
}
def task1():
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
##休眠20s等待页面加载完成
time.sleep(20)
print(driver.contexts)
driver.quit()
def task2():
driver = webdriver.Remote('http://127.0.0.1:4725/wd/hub', desired_caps2)
##休眠20s等待页面加载完成
time.sleep(20)
print(driver.contexts)
driver.quit()
threads = []
t1 = threading.Thread(target=task1)
threads.append(t1)
t2 = threading.Thread(target=task2)
threads.append(t2)
if __name__ == '__main__':
for t in threads:
t.start()