Python脚本selenium库完成自动创建汇联易账号
一、背景
汇联易账号创建非常麻烦,虽然支持用excel表导入,但是需要银行卡等信息,平常创建只使用部门,姓名,电话等即可创建。目标:使用python的selenium模仿人工操作网页的方式,借助excel批量导入员工。
本人属于刚学python,若有不足请多多指教。
二、工具使用
Python 3.10.6
Selenium 4.4.0
汇联易 2.20.3 版本不同会导致标签元素不通,请逐步进行调试
Webdriver,我在这使用的是chrome 1.0.5以后的版本,下载地址。
三、代码
一个文件为主方法,另一个文件为判断部门的方法
csv第一行就需要填写员工的信息,从第一列至最后一列分别为:工号、姓名、邮箱、金蝶识别码、部门、部门小组、岗位、手机号。
huilianyi.py 主方法
"""自动创建汇联易的账号"""
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
import csv
import panduanhuilian
driver = webdriver.Chrome(r'D:\chromedriver.exe') #webdriver的位置
driver.maximize_window()
driver.get("https://xxxx.huilianyi.com/")
data_set = r'D:\userdata.csv' ##员工信息excel
sleep(1)
' 登录 '
driver.find_elements(By.CLASS_NAME, 'ant-tabs-tab')[-1].click()
driver.find_element(By.CLASS_NAME, 'user-name').send_keys('12234') #平台账号
driver.find_element(By.CLASS_NAME, 'password').send_keys('lalalala') #密码
driver.find_element(By.CLASS_NAME, 'ant-checkbox-input').click()
driver.find_element(By.CLASS_NAME, 'ant-btn-lg').click()
sleep(5)
' 进入员工界面 '
driver.find_elements(By.CLASS_NAME, 'ant-tabs-tab')[5].click() #系统管理
sleep(1)
driver.find_element(By.ID, 'user-permission').click() #用户与权限
sleep(1)
driver.find_element(By.ID, 'person-manage').click() #员工
sleep(1)
reader = csv.reader(open(data_set, encoding='utf-8'))
rows = [row for row in reader]
for i in rows:
print(i)
driver.implicitly_wait(1)
' 新建员工 '
driver.find_elements(By.CLASS_NAME, 'ant-btn')[2].click() # 新建员工
sleep(1)
' 输入工号等基本信息 '
driver.find_element(By.ID, 'employeeID').send_keys(i[0]) # 工号
driver.find_elements(By.CLASS_NAME, 'language-input')[-1].send_keys(i[1]) # 姓名
driver.find_element(By.ID, 'email').send_keys(i[2]) # 邮箱
driver.find_element(By.ID, '052c3195-7733-4d24-9c7a-85161df0fe0d').send_keys(i[3]) # 唯一识别码
driver.find_element(By.ID, 'mobile').send_keys(i[7]) # 手机
sleep(6)
' 点击新增 '
add = driver.find_elements(By.CLASS_NAME, 'ant-btn')[9] #悬浮窗新增
driver.execute_script("arguments[0].scrollIntoView();", add) #拉到最下面
sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-btn')[9].click() ##点击新增
sleep(1)
' 设置公司 '
driver.find_elements(By.CLASS_NAME, 'ant-select-selection--multiple')[4].click() #选择公司
sleep(1)
driver.find_element(By.CLASS_NAME, 'ant-radio-input').click() ##选择启源
sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
' 设置级别 '
driver.find_elements(By.CLASS_NAME, 'ant-select-selection--multiple')[-1].click() #选择级别
sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-radio-input')[0].click() ##选择第一个按钮
sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
' 选择职位 '
driver.find_element(By.ID, 'position').send_keys(i[6]) # 职位
' 选择部门 '
driver.find_elements(By.CLASS_NAME, 'hover-input')[-1].click() #选择部门
sleep(1)
driver.find_element(By.CLASS_NAME, 'ant-table-row-expand-icon').click() ##点开小箭头
sleep(1)
panduanhuilian.check_name(i[4], driver, i[5]) ##选择部门
driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-btn')[10].click() ##最后的保存
sleep(10)
driver.find_element(By.ID, 'person-manage').click() # 返回员工界面
sleep(5)
panduanhuilian.py 为判断部门的方法,部门比较难选择,单独拿出来自定义操作。
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
import csv
## a为部门参数,b为driver参数,c为小组参数
def check_name(a, b, c):
if a == "xxxx部门" or a == "xxxx部门" : ##这里判断的是不含小组的部门
b.find_elements(By.XPATH, "//*[text()='" + str(a) + "']")[-1].click() ##点击指定部门
elif a == "xxx部" or a == "xxxx部" : #这里判断的是有小组的部门,数组里面的数字3,4需要自己调试
if a == "xxx部":
b.find_elements(By.CLASS_NAME, 'ant-table-row-expand-icon')[3].click() ##点开小箭头
sleep(1)
b.find_elements(By.XPATH, "//*[contains(text(), '" + str(c) + "')]")[-1].click() ##点击指定部门
elif a == "xxxx部":
b.find_elements(By.CLASS_NAME, 'ant-table-row-expand-icon')[4].click() ##点开小箭头
sleep(1)
b.find_elements(By.XPATH, "//*[contains(text(), '" + str(c) + "')]")[-1].click() ##点击指定部门
else:
print("无此部门")
四、汇联易部分截图
标签:
python
本文转载自: https://blog.csdn.net/weixin_46764886/article/details/126766303
版权归原作者 Ji影 所有, 如有侵权,请联系我们删除。
版权归原作者 Ji影 所有, 如有侵权,请联系我们删除。