IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python+selenium 奥兰系统自动化测试 -> 正文阅读

[Python知识库]python+selenium 奥兰系统自动化测试

selenium的小试牛刀

郑重说明:此代码程序仅为学习交流用途

前提:

1.python运行环境

2.selenium模块

安装selenium模块:打开cmd命令提示符,输入pip install selenium进行安装

3.需要有浏览器以及浏览器驱动

例如我的是谷歌chrom浏览器,需要下载chrome driver驱动,版本之间要对应上

chrome driver下载地址:CNPM Binaries Mirror

?

Linux

Windows

本人已将自己selenium所用到的chrome和对应的chromedriver打包好,包括Linux和Windows的都有,可以直接下载放在自己的电脑上使用,如有需要的可以私信我

具体实现代码如下:

奥兰系统每日三检体温填报

# -*- coding: utf-8 -*
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import random

def user_login(): 
    # 这里是找到输入框,发送要输入的用户名和密码,模拟登陆
    browser.find_element(By.XPATH,"//*[@id='username']").send_keys(name)
    browser.find_element(By.XPATH,"//*[@id='password']").send_keys(password)
    browser.find_element(By.XPATH,"//*[@class='auth_login_btn primary full_width']").click()      # 找到登录按钮并点击
    try:
        browser.find_element(By.XPATH,"/html/body/form/table/tbody/tr/td/table[2]/tbody/tr/td/div/span/a[5]").click()      # 点击登陆后的事务办理按钮
        print("登陆成功!")
        print("正在填报") 
    except:
        print("您提供的用户名或者密码有误\n登陆失败")
        browser.quit()
    return name,password        

# 晨检
def chenjian():
    time_check = "晨检"
    # 点击晨检
    browser.find_element(By.XPATH,"//*[@id='my_menu']/div/a[9]").click()  
    print("晨检开始填报")
    browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')   #滑到底部
    time.sleep(3)
    # 切换frame窗口
    browser.switch_to.frame(0) 
    # 点击下一步
    next_ = browser.find_element(By.XPATH,'//*[@id="div0"]/table/tbody/tr[3]/td/img')
    next_.click()    
    #点击勾选确定阅读
    browser.find_element(By.XPATH,'//*[@id="zzcnd"]').click()    
    # 体温填报  
    print("正在填写体温")
    temp = round(random.uniform(36.0,36.6),1)       # 随机生成35到36的数并保留一位小数
    browser.switch_to.window(browser.window_handles[0]) 
    browser.switch_to.frame(0)
    browser.find_element(By.XPATH,'//*[@id="tw_cj"]').clear()    #先清空输入框
    browser.find_element(By.XPATH,"//*[@id='tw_cj']").send_keys(temp)    #输入体温
    print("温度填写完成")
    print('-------------------------')
    print('今日体温:',temp)
    print("正在增加记录")
    browser.find_element(By.XPATH,"//*[@id='dcbc']").click()
#     browser.execute_script("arguments[0].click();", element)
    return time_check

# 午检
def wujian():
    time_check = '午检'
    # 点击午检
    browser.find_element(By.XPATH,"//*[@id='my_menu']/div/a[10]").click()  
    print("午检开始填报")    
    # 体温填报  
    print("正在填写体温")
    temp = round(random.uniform(36.0,36.6),1)       # 随机生成35到36的数并保留一位小数
    browser.switch_to.window(browser.window_handles[0]) 
    browser.switch_to.frame(0)
    browser.find_element(By.XPATH,'//*[@id="tw_wj"]').clear()    #先清空输入框
    browser.find_element(By.XPATH,"//*[@id='tw_wj']").send_keys(temp)    #输入体温
    print("温度填写完成")
    print('----------------------')
    print('今日体温:',temp)
    print("----------------------\n正在增加记录")
    browser.find_element(By.XPATH,'/html/body/form/div/table/tbody/tr/td/table[3]/tbody/tr[1]/td/input[2]').click()
#     browser.execute_script("arguments[0].click();", element)
    return time_check

# 晚检
def wanjian():
    time_check = '晚检'
    # 点击晚检
    browser.find_element(By.XPATH,"//*[@id='my_menu']/div/a[11]").click()  
    print("晚检开始填报")    
    # 体温填报  
    print("正在填写体温")
    temp = round(random.uniform(36.0,36.6),1)       # 随机生成35到36的数并保留一位小数
    browser.switch_to.window(browser.window_handles[0]) 
    browser.switch_to.frame(0)
    browser.find_element(By.XPATH,'//*[@id="tw_w"]').clear()    #先清空输入框
    browser.find_element(By.XPATH,"//*[@id='tw_w']").send_keys(temp)    #输入体温
    print("温度填写完成")
    print('----------------------')
    print('今日体温:',temp)
    print("----------------------\n正在增加记录")
    element = browser.find_element(By.XPATH,"//*[@id='databc']")
    browser.execute_script("arguments[0].click();", element)
    return time_check
    
# 获取填报成功反馈信息    
def get_alertText(time_check):
    try:
        text=browser.switch_to.alert.text    # 获取弹窗文本
        print(text)
        if '成功' in text:      # 根据弹窗内容返回是否填报成功
            print("{}填报成功!".format(time_check))
        else:
            print("{}填报失败!".format(time_check))
        browser.switch_to.alert.accept()         # 关闭alert窗口
        return text
    except:
        return "{}填报成功".format(time_check)

# 未勾选
def text_warning():    
        print("未勾选我已阅读,正在重新点击!")
#         browser.switch_to.alert.accept()  #关闭提示窗口
        browser.find_element(By.XPATH,'//*[@id="zzcnd"]').click()    #点击勾选确定阅读
        print("正在重新增加记录")
        element = browser.find_element(By.XPATH,"//*[@id='dcbc']")
        browser.execute_script("arguments[0].click();", element)
        print("我已阅读高校疫情防控警示教育典型案例")

# 退出程序        
def exit():
#     browser.switch_to.alert.accept()         # 关闭alert窗口
    time.sleep(1)
    browser.quit()   #     #关闭浏览器
    
if __name__=="__main__":    
    stu_name=["用户名1","用户名2"]
    stu_passwd=["密码1","密码2"]
    for i in range(len(stu_name)):
        name = stu_name[i]
        password = stu_passwd[i]   
        chrome_path = "/opt/google/chrome/chrome"
        driver_path = "/home/liu/chromedriver"    
        options = webdriver.ChromeOptions()   # 模拟浏览器打开网站
        options.add_argument('--headless')    #设置chrome浏览器无界面模式
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')
        options.binary_location = chrome_path    #传入chrome安装地址
        # browser=webdriver.Chrome(chrome_options=options,executable_path=driver_path)  
        s=Service(driver_path)    #传入驱动地址
        browser = webdriver.Chrome(options=options,service=s)
        url = 'http://xxx'   #要打开的网址
        browser.get(url)     # 浏览器打开
        browser.implicitly_wait(20)   #  隐式等待
        browser.maximize_window()    # 将窗口最大化
        print("正在进入奥蓝系统")
        print("正在登陆中...")
        name,password = user_login()    # 用户登录
        now_localtime = time.strftime("%H:%M:%S", time.localtime())     # 现在的时间
        # 判断时间,根据时间填报三检
        strs = "="
        if "6:00:00" < now_localtime < "10:00:00":
            print("现在是北京时间:",now_localtime,"\n可以开始填报晨检啦!") 
            time_check = chenjian()    #  调用晨检函数
            text = get_alertText(time_check)
            if "请勾选我已阅读高校疫情防控警示教育典型案例" in text:
                text_warning()
                get_alertText(time_check)
            exit()
            print("{}的{}程序已完成,程序退出!\n{}".format(name,time_check,strs*40))
        elif "10:30:00" < now_localtime < "13:30:00":
            print("现在是北京时间:",now_localtime,"\n可以开始填报午检啦!") 
            time_check = wujian()    #  调用午检函数   
            text = get_alertText(time_check)
            exit()
            print("{}的{}程序已完成,程序退出!\n{}".format(name,time_check,strs*40))
        elif "16:00:00" < now_localtime < "23:00:00":
            print("现在是北京时间:",now_localtime,"\n可以开始填报晚检啦!") 
            time_check = wanjian()    #  调用晚检函数
            text = get_alertText(time_check)     # 填报是否成功
            print("{}的{}程序已完成,程序退出!\n{}".format(name,time_check,strs*40))
            exit()  # 程序退出

运行结果如下

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:19:02  更:2022-04-09 18:22:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:05:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码