UPDATE:停止硒WebDriverwhen無限獲取使用代理
原因GET(URL)永不完時,我使用了代理什麼該網站的一些HTTPS的部分,(廣告網絡等)不喜歡代理。這就是爲什麼頁面從未真正完成加載(實際上它確實,它只是花了很長時間)
我使用Selenium Webdriver與Firefox,當我嘗試訪問某些無限期加載的網站(除非有某種用戶交互),我只是想阻止它們永久加載。我使用Webdriver的Java庫,但使用Jython編寫代碼(因此不包含';'或'new xxx')。
我試圖
driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS)
driver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS)
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS)
driver.get(...)
driver.close()
但每次得到的只是將不會停止。
我用DesiredCapabilities通過代理通過瀏覽器來啓動:
proxyServer = '127.0.0.1:8080'
proxy = Proxy()
proxy.setHttpProxy(proxyServer)
proxy.setSslProxy(proxyServer)
capabilities = DesiredCapabilities()
capabilities.setCapability(CapabilityType.PROXY, proxy)
driver = FirefoxDriver(capabilities)
的時候,不設置了代理,該網站是正常處理。只有在使用代理時,網站纔會停止,並且永遠不會完成get()。這對每個網站都沒有問題,只有一些網站有這個問題。
任何想法可能導致此?看起來代理設置阻止瀏覽器或硒發出get()完成信號。
永無止境的得到?像什麼?當你真的在瀏覽器中打開這個頁面時,它永遠不會結束加載?我會認爲這是一個網頁的錯誤。 – pagep
當我使用get(url)並跟進例如一個簡單的打印(「Hello World」)時,打印永遠不會到達。當網頁有問題時,我想讓瀏覽器說「好的,讓我們停下來」,然後拋出一個例外。 – Peter1807
似乎設置代理會導致此問題。但它在某些網站上只是一個問題。我不知道我能否在這裏舉一個例子。 – Peter1807