1. 程式人生 > >Selenium Network error 或 Access Denied 錯誤

Selenium Network error 或 Access Denied 錯誤

最近在搗鼓Selenium 2.X版本的Webdriver. 在公司初始化一個Firefox 的Webdriver的時候就一直報錯,要不就是Network error,要不就是Access Denied. 但是回家在自己電腦上就執行的很正常。在網上搜索了很多內容,也沒有解決的辦法,很多方法無非就是修改一下代理或者什麼的。但是我都統一在電腦上試過一遍都還是沒法通過。今天偶然用Administrator使用者登入,然後運行了一下,通過了,然後重新設定了下代理就可以訪問外部網頁了。

分析了下,其實我先前遇到的問題和能否訪問外部網頁完全是兩碼事,通過跟蹤了Firefox Webdriver的初始化程式碼,瞭解了下其大概過程,

1. 在本機啟動一個firefox, 同時指定一個port作為firefox webdirver 的Port,然後其實相當於webDriver執行在本機相當於一個虛擬的伺服器。

埠為指定的埠。

2. 客戶(寫程式碼的)通過程式碼向這個虛擬的伺服器傳送命令(使用者需要測試的操作),然後該虛擬伺服器通過解析使用者所發的一些操作指令

直接轉化為firefox的內部命令進行操作。

所以瀏覽器裡面的代理之類的東西都是瀏覽器訪問外部網頁的時候需要通過代理去訪問外部網頁,而使用者通過程式碼去向該虛擬伺服器傳送指令的時候其實和瀏覽器上的代理是沒有關係的,用到的只是簡單的socket 通訊。

總結:

用的是win8,通過更換Administrator使用者可以實現訪問本地的虛擬伺服器,可能還是更使用者的一些許可權設定有關係。當然,我也通過寫了一個簡單的C-S模式的socket通訊測試程式碼,在非Administrator使用者中也執行OK,所以到底是怎麼回事,有待進一步研究和測試。