我有一個自我刷新內容的頁面(通過WebSocket),像這樣one。雖然內容在不斷變化,但我的firefox webdriver只能看到最初的內容。我可以通過刷新頁面得到新鮮的頁面Selenium WebDriver Python重新加載html而無需刷新頁面
driver.navigate.refresh()
但是這會導致不必要的流量,除了在Firefox窗口中新的內容已經出現。
我的問題是:我可以得到新的HTML,因爲我可以在Firefox窗口中觀察,而無需重新加載整個頁面?
我有一個自我刷新內容的頁面(通過WebSocket),像這樣one。雖然內容在不斷變化,但我的firefox webdriver只能看到最初的內容。我可以通過刷新頁面得到新鮮的頁面Selenium WebDriver Python重新加載html而無需刷新頁面
driver.navigate.refresh()
但是這會導致不必要的流量,除了在Firefox窗口中新的內容已經出現。
我的問題是:我可以得到新的HTML,因爲我可以在Firefox窗口中觀察,而無需重新加載整個頁面?
如果頁面內容在一段時間內發生變化,您可以做的一個選項是每n秒檢查頁面源。一個簡單的方法是import time
,然後使用time.sleep(5)
等待5秒鐘,然後獲取頁面源代碼。你也可以把它放在一個循環中,如果頁面內容在接下來的5秒內發生了變化,那麼硒在檢查時應該能夠獲得更新的頁面內容。我沒有測試過,但可以隨時檢查它是否適用於您。
編輯:增加了示例代碼。確保您有木偶正確安裝和配置。你可以在這裏查看我的回答如果你是Ubuntu的用戶(https://stackoverflow.com/a/39536091/6284629)
# this code would print the source of a page every second
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
# side note, how to get marionette working for firefox:
# https://stackoverflow.com/a/39536091/6284629
capabilities = DesiredCapabilities.FIREFOX
capabilities["marionette"] = True
browser = webdriver.Firefox(capabilities=capabilities)
# load the page
browser.get("http://url-to-the-site.xyz")
while True:
# print the page source
print(browser.page_source)
# wait for one second before looping to print the source again
time.sleep(1)
我不認爲你可以做這樣的事情硒。檢查這個選擇。 http://jmeter.apache.org – Juggernaut
@AminEtesamian謝謝,看起來不錯,但我需要使用python。 – user92020