2016-09-24 16 views
1

我想在瀏覽網站時收集一系列響應,然後使用響應「重新創建」過程在硒webdriver中呈現一系列響應

other thread我發現這個解決方案來渲染HTML:

content = requests.get("https://stackoverflow.com/").content 

driver = webdriver.Chrome() 
driver.get("data:text/html;charset=utf-8," + content) 

不幸的是,當我嘗試這(使用Firefox而不是Chrome瀏覽器),內容是簡單地把在瀏覽器地址欄中。

我該如何渲染一系列響應,例如使用硒webdriver進行XHR響應?

回答

0

我發現了一個可能的解決方案,或者更確切地說是解決方法。當在字典中保存請求(url)和響應時,您可以設置一個服務器,用它的預先錄製的響應來回答每個請求。

1

你必須考慮到某些特定的瀏覽器的東西,喜歡的事實,# and % have to be escaped if you use Firefox - 從我的理解,你可以簡單地通過quote()內容:

try: 
    from urllib import quote 
except ImportError: 
    from urllib.parse import quote # if Python 3 

driver.get("data:text/html;charset=utf-8," + quote(content)) 

不需要做,如果你使用鉻。

+0

謝謝!但是,我能否也以這種方式處理所有其他請求?就好像瀏覽器發送請求一樣,並且會收到虛擬響應 - 而不必發送請求。我想提供回覆,並查看瀏覽器的行爲。 – Peter1807

+1

@ Peter1807不確定,你能詳細說明你想要達到什麼目的,爲什麼你需要一個真正的瀏覽器,而不是僅僅使用'requests'?謝謝。 – alecxe

+0

我想測試客戶端框架。服務器響應在這些情況下包含僅在瀏覽器中呈現的模板。我想看看如何改變這些模板影響結果頁面。 – Peter1807