背景
我一般運行 appium 都是在 osx 或者 linux 上面,最近在教幾個同事使用 appium 做些自動化(爬蟲)的事,有幾個人使用的是 windows,配置環境搞了很久,服務跑起來了之後,用代碼運行,又報了上面標題的錯誤。
問題分析
首先判斷,這是一個 python 的錯誤,也就是說,不是 appium 本身的問題,那就從兩點開始分析,要麼是系統環境問題,要麼是哪裏的配置問題。
先從配置的問題開始下手,畢竟新手一般都容易犯一些低級錯誤。但是拿着同事的代碼在另一位同事的機器(osx)上跑,怎麼都可以。
奇怪。
那難道是系統的問題?確實,人家錯誤信息也提示了,就是個 WinError
,但是如何下手呢?
網上查到關於這個問題的描述都是 bindIp
的時候報的錯,那就從 ip
下手開始搞吧。
先看下與 ip
相關的代碼:
...
APPIUM_HOST = 'http://0.0.0.0:%s/wd/hub'
driver = webdriver.Remote(AndroidEnum.APPIUM_HOST % self.host, self.desired_caps)
...
解決方法
破案了,就是上面的 ip
問題,把 0.0.0.0
改爲 127.0.0.1
正常運行了。
不過這裏比較奇怪的就是,爲什麼在 osx
上可以正常運行,而在 windows
上就報錯呢?
而且 0.0.0.0
和 127.0.0.1
具體又有什麼區別呢?
希望大佬來上上課。