110
社区成员
发帖
与我相关
我的任务
分享selenium
retry
需要准备:
edge浏览器
msedgedriver.exe(与浏览器版本相符)
edge浏览器版本在



msedgedriver在官网

# 开发者:热心网友
# 开发时间: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库的使用