Selenium WebDriver Python 重新加载 html 而不刷新页面

Selenium WebDriver Python reload html without refreshing the page

我有一个包含自我刷新内容(通过 WebSocket)的页面,如下所示 one。虽然内容不断变化,但我的 firefox webdriver 只能看到初始内容。我可以通过

刷新页面来获得新的
   driver.navigate.refresh()

但这会导致不必要的流量,除了在 Firefox window 中,新内容已经出现。

我的问题是:我可以在 Firefox window 中看到新鲜的 html 而无需重新加载整个页面吗?

如果页面内容在一段时间内发生变化,您可以做的一个选择是每 n 秒检查一次页面源。一个简单的方法是 import time 然后使用 time.sleep(5) 等待 5 秒,然后获取页面源。你也可以把它放在一个循环中,如果页面内容在随后的5秒内发生变化,那么selenium应该能够在你检查时获得更新的页面内容。我还没有对此进行测试,但请随时检查它是否适合您。

编辑:添加示例代码。确保您已 marionette 正确安装和配置。如果您是 ubuntu 用户 ()

,您可以在这里查看我的回答
# 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:
# 

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)