目前,我的公司在大楼内分布着大约40个信息板,其中包含与每个区域相关的信息。每个单元都是一个基于Linux的小型设备,可以通过编程启动RDP会话,使用用户名和密码登录,并启动相应的powerpoint并开始播放。董事会将每4小时关闭一次约5分钟,复制新版本的演示文稿(如果适用)并重新启动。
我们现在有"要求"对于实时数据。不幸的是,我相信powerpoint将不再是一个选项,因为我们使用了Powerpoint查看器,它不支持插件。我想使用谷歌幻灯片,但也有限制,我们不能有像谷歌大道这样的面向公众的服务,所以有这样的想法。
我正在考虑某种方式来启动Web浏览器,并通过指定的网页列表(可能存储在txt或csv文件中)进行旋转。我找到了一种方法来启动Firefox并通过python将其自动登录到OBIEE:
#source: http://obitool.blogspot.com/2012/12/automatic-login-script-for-obiee-11g_12.html
import unittest
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
# Hardcoding this information is usually not a good Idea!
user = '' # Put your user name here
password = '' # Put your password here
serverName = '' # Put Host name here
class OBIEE11G(unittest.TestCase):
def setUp(self):
# Create a new profile
self.fp = webdriver.FirefoxProfile()
self.fp.set_preference("browser.download.folderList",2)
self.fp.set_preference("browser.download.manager.showWhenStarting",False)
# Associate the profile with the Firefox selenium session
self.driver = webdriver.Firefox(firefox_profile=self.fp)
self.driver.implicitly_wait(2)
# Build the Analytics url and save it for the future
self.base_url = "http://" + serverName + ":9704/analytics"
def login(self):
# Retreive the driver variables created in setup
driver = self.driver
# Goto the loging page
driver.get(self.base_url + "/")
# The 11G login Page has following elements on it
driver.find_element_by_id("sawlogonuser").clear()
driver.find_element_by_id("sawlogonuser").send_keys(user)
driver.find_element_by_id("sawlogonpwd").clear()
driver.find_element_by_id("sawlogonpwd").send_keys(password)
driver.find_element_by_id("idlogon").click()
def test_OBIEE11G(self):
self.login()
#
if __name__ == "__main__":
unittest.main()
如果我可以使用它,我只需要一种方法每30秒旋转一个新的网页。有什么想法/建议吗?
答案 0 :(得分:0)
您可以在每个等待指定时间的页面上放置一个简单的javascript代码段,然后重定向到新页面。这具有简单实现的优点,但是在许多html文件上维护它可能很烦人。
另一种选择是将您的副本写在markdown文件中,然后有一个单独的html页面,它通过文件列表旋转并呈现并显示降价。然后,您将通过重写markdown文件来更新数据。它不会完全是现场,但如果30秒的分辨率是可以的,你就可以逃脱它。这样的客户端代码:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Message Board</title>
<link rel="stylesheet" type="text/css" href="/css/style.css">
</head>
<body>
<div id="content" class="container"></div>
<!-- jQuery -->
<script src="//code.jquery.com/jquery-2.1.4.min.js" defer></script>
<!-- markdown compiler https://github.com/chjj/marked/ -->
<script src="/js/marked.min.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
和javascript
// main.js
// the markdown files
var sites = ["http://mysites.com/site1.md", "http://mysites.com/site2.md", "http://mysites.com/site3.md", "http://mysites.com/site4.md"]
function render(sites) {
window.scrollTo(0,0);
//get first element and rotate list of sites
var file = sites.shift();
sites.push(file);
$.ajax({
url:file,
success: function(data) { $("#content").html(marked(data)); },
cache: false
});
setTimeout(render(sites), 30000);
}
// start the loop
render(sites);
然后,您可以使用任何想要写出降价文件的方法。