"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理解為——規定。
微信公眾號搜索“自動化測試實戰”或掃描下方二維碼添加關註~~~
"http://127.0.0.1:4723/wd/hub"的解釋