一个简单的selenium库版本的健康打卡程序

风息林谷 2022-12-11 17:32:49

目录

  • requirements
  • 记得版本一一对应,下载后把msedgedriver.exe和代码放于同一目录下
  • 代码
  • 须知

requirements

selenium
retry

需要准备:

edge浏览器
msedgedriver.exe(与浏览器版本相符)
edge浏览器版本在

img


img


img

msedgedriver在官网

img


https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

记得版本一一对应,下载后把msedgedriver.exe和代码放于同一目录下

代码

# 开发者:热心网友
# 开发时间:2021/12/1 9:56
# coding:utf-8

import time
from selenium.webdriver import ActionChains
from selenium import webdriver
import warnings
warnings.filterwarnings('ignore', category=DeprecationWarning)
from retry import retry


def choose(driver, k_xp, x_xp):
    if driver.find_element_by_xpath(k_xp).text == '请选择...':
        driver.find_element_by_xpath(k_xp).click()
        time.sleep(0.5)
        driver.find_element_by_xpath(x_xp).click()
        time.sleep(0.5)


@retry(tries=1)
def func(driver):
    # 今日所在位置
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[1]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[15]/div/div/div/div[2]/div/div[5]/span'
    )
    # 今日核酸检测情况
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[3]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[17]/div/div/div/div[2]/div/div[2]/span'
    )
    # 今日身体情况 *
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[5]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[19]/div/div/div/div[2]/div/div[2]/span'
    )
    # 异常情况接触史
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[8]/div[1]/div/div[2]/div/div/div[1]/span',
        '/html/body/div[21]/div/div/div/div[2]/div/div[1]/span'
    )
    ActionChains(driver).move_by_offset(200, 100).click().perform()
    # 今日滞留情况
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[10]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[23]/div/div/div/div[2]/div/div[2]/span'
    )
    # 今日情况
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[2]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[16]/div/div/div/div[2]/div/div[2]/span'
    )
    # 今日疫苗接种情况
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[4]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[18]/div/div/div/div[2]/div/div[2]/span'
    )
    # 今日健康码
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[7]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[20]/div/div/div/div[2]/div/div[2]/span'
    )
    # 今日隔离情况
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[9]/div/div/div[2]/div/div/div[1]',
        '/html/body/div[22]/div/div/div/div[2]/div/div[2]/span'
    )
    # 家庭住址
    choose(
        driver,
        '/html/body/div[13]/div/div[1]/section/div[2]/div/div[3]/div[2]/div[13]/div/div/div[2]/div/div/div[1]/span',
        '/html/body/div[25]/div/div/div/div[2]/div/div[2]/span'
    )
    ActionChains(driver).move_by_offset(100, 100).click().perform()

    # 保存
    try:
        driver.find_element_by_xpath('/html/body/div[13]/div/div[2]/footer/div').click()
        driver.find_element_by_xpath('/html/body/div[26]/div[1]/div[1]/div[2]/div[2]/a[1]').click()
    except:
        func(driver)


driver = webdriver.Edge(executable_path='./msedgedriver.exe')
driver.maximize_window()

driver.get('http://ehall.njmu.edu.cn/qljfwappnew/sys/lwWiseduHealthInfoDailyClock/index.do?amp_sec_version_=1&gid_=UWhTTG5HRU1OSndjTzZydzZoTUpJbVorVkVXaDZPb3ZQMXZXMWVlaUgzTWh5alZqSjFhdlU1Snc2ZVl1RSthOGhRVG1QcnltdG5MVC9MWGh0dlVQSWc9PQ&EMAP_LANG=zh&THEME=indigo#/healthClock')

# 用户名
driver.implicitly_wait(1)
driver.find_element_by_xpath('//*[@id="username"]').send_keys('*****')  # 这里的 ***** 是输入你的用户名和密码
driver.find_element_by_xpath('//*[@id="password"]').send_keys('*****')
driver.find_element_by_xpath('//*[@id="casLoginForm"]/p[5]/button').click()  # 点击‘登录’
time.sleep(5)

# 新增
driver.find_element_by_xpath('/html/body/main/article/section/div[2]/div[1]').click()
time.sleep(5)
driver.find_element_by_xpath('//*[@id="buttons"]/button[2]').click()

func(driver)

须知

此代码已不可用,在”进入编辑“之后的内容需要自己调整,具体可自行上B站或者csdn学习selenium库的使用

...全文
223 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

发帖
与我相关
我的任务
社区描述
这里是南京医科大学在CSDN设立的交流社区,大家可以在这里交流计算机知识和其他医学知识哦~
江苏省·南京市
社区管理员
  • c_university_750
  • Gremmie2003
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

1.大家可以在社区中发布自己的学习打卡和学习笔记,在社区分享可能会分到平台赠送的流量哦

2.请勿在社区论坛中发布任何广告,共同维护绿色南医社区

3.在社区中发布的内容不限于计算机技能和知识,也可以是生化细生等知识总结,打造南医特色

试试用AI创作助手写篇文章吧