在浏览器中打开HTML文档,然后在SAME窗口中更新,而不是在新标签页/窗口中更新

时间:2019-06-06 05:17:07

标签: python html

在python中,您可以打开这样的网络浏览器...

import webbrowser
webbrowser.open("stackoverflow.com")

每次调用页面时,此方法都会打开一个新选项卡。我想用文本框,图形(SVG)设备等创建一个网页,然后将变量传递给它。基本上...使用浏览器作为显示屏幕。

HTML页面将与python代码驻留在同一文件夹中...所以这可以正常工作...

import webbrowser
webbrowser.open("sample.html")

问题是...如果我将其放置在每秒更新的计时器中...我得到一个接一个的选项卡...但是我想要的是让它一次打开页面,然后将数据传递给它好像我曾经用过“提交”按钮一样……

我的代码将生成适当的文本... URL加数据...然后将其作为长URL传递。

webbrowser.open("sample.html?alpha=50&beta=100")

页面将拉出变量“ alpha”和“ beta”,然后使用 javascript 将数据推送到某些图形设备中。我以这种方式操作SVG取得了巨大的成功,例如http://askjerry.info/SVG。 (如果愿意,可以随意获取我的图形。)

是否有可能每次都更新 SINGLE 页面/窗口而不是新标签?

谢谢, 杰瑞

2 个答案:

答案 0 :(得分:0)

使用硒模块。 .get()方法实际上只是在同一选项卡中打开给定的url,而保留旧的url。实际上,我认为甚至还有一个.refresh()。

答案 1 :(得分:0)

此问题:Refresh a local web page using Python

from selenium import webdriver
import time

driver = webdriver.Firefox()

driver.get('URL')
while True:
    time.sleep(20)
    driver.refresh()
driver.quit()

您可以在其中用'URL'替换url和参数-但是,如果您希望将数据从python传递到html / javascript,那么学习烧瓶或类似方法会更好。然后,您可以使用Ajax更新页面,这将使您的图形看起来更美观,并且如果您需要传递的数据不仅仅是alpha和beta,那么它将变得易于处理。