0


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,strs40))
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

本文转载自: https://blog.csdn.net/weixin_45971950/article/details/123996563
版权归原作者 bug智造 所有, 如有侵权,请联系我们删除。

“python+selenium 奥兰系统自动化测试”的评论:

还没有评论