阿里云监控自定义大盘自动切换

本贴最后更新于 2102 天前,其中的信息可能已经事过景迁

项目地址:https://github.com/fish2018/aliyun_monitor_switch.git

功能

阿里云监控大盘自动切换页面,配合监控大屏(电视、显示器)使用。 通过 selenium 自动登录阿里云监控,批量打开监控大盘页面,自动切换 chrome 标签

使用说明

使用阿里云-RAM 用户登录 https://signin.aliyun.com/login.htm 监控子账号分配只读权限

  • URLS:
    自定义监控大盘的 url

  • SWITCHTIME:
    切换标签的间隔时间

  • USERNAME:
    用户名

  • PASSWORD:
    密码

monitor1.gif

开发

mac 下需要安装 chrome 的驱动 chromedriver
否则报错:

WebDriverException: 'chromedriver' executable needs to be in PATH

下载对应版本的驱动,加入到 path 即可

$ sudo mkdir /devops $ sudo cp chromedriver /devops $ sudo vi /etc/path /devops

核心代码

# -*- coding: utf-8 -*- from selenium import webdriver import time from retry import retry # 阿里云监控大盘urls URLS = ["URL1","URL2","URL3"] # 用户名 USERNAME = "USERNAME" # 密码 PASSWORD = "PASSWORD" # 切换间隔时间 SWITCHTIME = 120 class Monitor(object): def __init__(self): self.urls = URLS self.switchtime = SWITCHTIME # 加启动配置,隐藏"Chrome正在受到自动软件的控制" option = webdriver.ChromeOptions() option.add_argument('disable-infobars') self.browser = webdriver.Chrome(chrome_options=option) self.username = USERNAME self.password = PASSWORD # 子账号登录阿里云监控 def login(self): self.browser.get("https://signin.aliyun.com/login.htm") # 通过css_selector找到账号,密码的输入框,并输入相应的账号/密码 self.browser.find_element_by_id("user_principal_name").send_keys(self.username) self.browser.find_element_by_class_name("next-btn").click() time.sleep(1) self.browser.find_element_by_id("password_ims").send_keys(self.password) self.browser.find_element_by_class_name("submit-btn").click() # 打开监控大盘页面 def openurls(self): for index, u in enumerate(self.urls): if index is 0: self.browser.get(u) else: url = "window.open('%s');" % u self.browser.execute_script(url) # 关闭浮动框 @retry(tries=10, delay=1) def closebox(self): try: self.browser.find_element_by_css_selector("div.help-guide-step-header > i.topbar-sidebar-no").click() except Exception: pass # 切换全屏 @retry(tries=10, delay=1) def fullscreen(self): try: self.browser.find_element_by_class_name("cms4service-hidden").click() except Exception: pass # 循环切换浏览器标签 def loopswitch(self): handles = self.browser.window_handles # 获取当前窗口句柄集合(列表类型) i = 0 while True: for h in handles: self.browser.switch_to.window(h) if i is 0: self.closebox() self.fullscreen() time.sleep(self.switchtime if self.switchtime >= 30 else 30) i += 1 # 启动 def start(self): self.login() self.openurls() self.loopswitch() if __name__ == '__main__': Monitor().start()
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    84 引用 • 324 回帖 • 1 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    57 引用 • 25 回帖 • 4 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...