看板 Python 關於我們 聯絡資訊
最近在做一個小project 在local端(mac)運行沒問題 放到VM(REHL7)上花了不少時間終於解決環境問題 但是卡在selenium webdriver 啟動後,網域會出問題 問題是這樣 VM本身有需要設定proxy 才能連到外網或內網,Firefox or Chrome有設定一個proxy url 的dat檔才能上網 我經過交叉比較,我發現我可以用firefox or chrome在瀏覽器 上得了公司網站 內部登入網站 但當我用selenium webdriver啟動之後,我截圖,發現我是被轉到一個public頁面 跟我用我手機LTE 去相同url是同一個畫面 我一開始在code裡面加上proxy設定,結果返回的是一個空白頁面 所以我認為是 當我啟動program之後 是不是直接變成在外網的狀態? 感覺好怪... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 67.161.5.197 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1535957858.A.6CC.html
rexyeah: 不能自己機器跑proxy service然後VM透過你的機器出去嗎? 09/03 15:48
rexyeah: VM網路是bridge還是NAT出去啊? 09/03 15:49
MIKEmike07: VM 在data center, VM要設proxy 才能連內網加外網。br 09/04 04:26
MIKEmike07: owser 要設定URL, .dat一個連結 才能上網(內和外) 09/04 04:26
MIKEmike07: 確認過,單獨開browser 去同一個公司連結沒問題,但se 09/04 04:28
MIKEmike07: lenium 跑的就會被deny 或是跑到外網的頁面(跟我手機 09/04 04:28
MIKEmike07: 上一樣網站出現一樣的畫面) 09/04 04:28
MIKEmike07: 另外在REHL,browser 不會pop up模擬,我都需要靠截 09/04 04:29
MIKEmike07: 圖debug lol 09/04 04:29
MIKEmike07: 您對selenium and wbdriver 熟嗎 可以私下請教? 謝 09/04 04:30
MIKEmike07: 謝 09/04 04:30
s860134: 你瀏覽器怎樣設定 webdriver 就做一樣的設定 09/04 09:21
s860134: 你 chrome 和 firefox 沒帶 proxy 當然連不出去 09/04 09:22
s860134: 你用 .get 可以切換網址阿 09/04 09:27
MIKEmike07: 不是proxy 問題,沒設proxy 還是可以上google, yahoo 09/04 09:38
MIKEmike07: page 09/04 09:38
MIKEmike07: 我現在是 可以取得正確的網址,但頁面截圖出來是空白 09/04 10:17
MIKEmike07: 的,感覺是跳到一個空白的頁面.. 理論上是這樣 我URL 09/04 10:17
MIKEmike07: 設定google 內網一個網址,他會跳到這個內網網址,然 09/04 10:17
MIKEmike07: 後轉到sso login的網址,但他好像在內網網址那邊就停 09/04 10:17
MIKEmike07: 下來了 回傳的網址是內網網址,但這不應該的@@ 09/04 10:17
rexyeah: 也許您已經嘗試過了,但我還是問一下,--proxy-server= 09/04 11:03
rexyeah: "http=xx.xx.xx.xx:xx;https=xx.xx.xx.xx:xx" 09/04 11:03
rexyeah: 加到webdriver的option這個方法也嘗試過嗎? 09/04 11:04
rexyeah: 不太懂「設定google 內網一個網址」是什麼意思? 09/04 11:05
rexyeah: 或是你可以用devtool看到底是哪段code把你轉去別的網址 09/04 11:07
是的,我嘗試過 設定google 內網一個網址就比如說https://google/clouddeveloper.com 在google內網情況下 如果我還沒有sso login google的話,你輸入這個連結他會跳到sso login page 在google外網情況下 你去這個連結,可能就直接deny你連線,不然就是跳到一個 google cloud頁面etc
s860134: 癥結應該是 "url 的 .dat" 是啥東西 09/04 12:07
s860134: 根據你的敘述,應該是開啟瀏覽器瀏覽網頁會先進行 SSO 09/04 12:16
s860134: 認證,SSO 認證的彈出視窗應該是同於分頁 09/04 12:17
s860134: 用 window_handles 確認是否多於一個,若是,則使用 09/04 12:18
s860134: .switch_to_window 指定 handle id 進行切換 09/04 12:18
s860134: 之所以你看到白色畫面,是因為在等你 SSO 認證吧 09/04 12:19
.dat 檔 是一種資料檔 目前問題已經解決了,我設定好 proxy連結到.dat 這段沒有問題 但我一直無法pass的原因是... selenium 是需要類似x-windows來work,去模擬網頁 我一直用ssh 連到那個machine來執行,selenium好像在用ssh連線會有問題 我會發現是因為我突然想說我用vnc的terminal來run code 結果就成功了==
rexyeah: 所以是ssh x11 forwarding的問題? 09/04 12:48
rexyeah: 那用pyvirtualdisplay把display關掉也許就好了吧 09/04 12:49
我在rehl底下,從來沒跑出過瀏覽器windows,或許 我之前有試過什麼display off 但可能沒效或我當下也沒設 proxy所以失敗就刪除,我待會試試 ※ 編輯: MIKEmike07 (100.1.180.88), 09/04/2018 13:07:59