"http://127.0.0.1:4723/wd/hub"的解释
先补充一个内容,就是appium安装时候的环境变量配置,必须要配ANDROID_HOME这个变量,不是“要配置”,是“必须配置”,其他的那些放到系统变量的path里就可以了:
# coding: utf-8
from appium import webdriver
from time import sleep
desired_caps = {'platformName': 'Android',
'deviceName': '127.0.0.1:62001',
'platformVersion': '23',
'appPackage': 'com.tencent.news',
'appActivity': 'com.tencent.news.activity.SplashActivity',
'unicodeKeyboard': True,
'resetKeyboard': True}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
上面代码最后的请求地址是"http://127.0.0.1:4723/wd/hub",下面我们来解释一下哈:
127.0.0.1
127.0.0.1是环回(loopback)地址,用来测试本机的TCP/IP协议栈,比如你在cmd里输入:ping 127.0.0.1:
看到的就是向本机发送请求包,这个请求只会在你的本地跑,不会通过网络发送出去。
“本地”,你一定还想到了localhost,打开你的hosts文件(右键选择用notenotepad++打开):
可以看到:
是的,127.0.0.1和localhost的是“等价的”:
localhost是个域名,性质跟 “www.baidu.com” 差不多。(不能直接绑定套接字,必须先gethostbyname)转成IP才能绑定——括号里的字我也不太明白。也就是说你的localhost默认的ip就是127.0.0.1。
现在我们就可以这样理解了,地址写127.0.0.1的意思就是要在本地进行访问:
我们把地址直接写成localhost,这样也是可以调通的。
端口号:4723
这个值不是固定的,唯一的要求就是——不要冲突,你可以在cmd你查看目前占用的端口号,输入命令
netstat -ano查看所有端口占用;
netstat -ano | findstr “4723” 查看4723端口号被哪个程序占用
也可以打开你的appium:
在这里就可以修改端口号了,但是你在这里怎么改端口号,那么你代码里就要对应的修改端口号。
/wd/hub
我们来看源码:
可以看到,WebDriver类在初始化时也定义了一个地址,除了端口号不一样其它的和我们传的是一样的。因此我们就可以简单的把/wd/hub理解为——规定。
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~