0


【自动化】Python脚本selenium库完成自动创建汇联易账号

Python脚本selenium库完成自动创建汇联易账号

一、背景

  1. 汇联易账号创建非常麻烦,虽然支持用excel表导入,但是需要银行卡等信息,平常创建只使用部门,姓名,电话等即可创建。目标:使用pythonselenium模仿人工操作网页的方式,借助excel批量导入员工。
  2. 本人属于刚学python,若有不足请多多指教。

二、工具使用

  1. Python 3.10.6
  2. Selenium 4.4.0
  3. 汇联易 2.20.3 版本不同会导致标签元素不通,请逐步进行调试
  4. Webdriver,我在这使用的是chrome 1.0.5以后的版本,下载地址。

三、代码

  1. 一个文件为主方法,另一个文件为判断部门的方法
  2. csv第一行就需要填写员工的信息,从第一列至最后一列分别为:工号、姓名、邮箱、金蝶识别码、部门、部门小组、岗位、手机号。

  1. huilianyi.py 主方法
  1. """自动创建汇联易的账号"""
  2. from selenium import webdriver
  3. from selenium.webdriver import Keys
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.common.action_chains import ActionChains
  6. from time import sleep
  7. import csv
  8. import panduanhuilian
  9. driver = webdriver.Chrome(r'D:\chromedriver.exe') #webdriver的位置
  10. driver.maximize_window()
  11. driver.get("https://xxxx.huilianyi.com/")
  12. data_set = r'D:\userdata.csv' ##员工信息excel
  13. sleep(1)
  14. ' 登录 '
  15. driver.find_elements(By.CLASS_NAME, 'ant-tabs-tab')[-1].click()
  16. driver.find_element(By.CLASS_NAME, 'user-name').send_keys('12234') #平台账号
  17. driver.find_element(By.CLASS_NAME, 'password').send_keys('lalalala') #密码
  18. driver.find_element(By.CLASS_NAME, 'ant-checkbox-input').click()
  19. driver.find_element(By.CLASS_NAME, 'ant-btn-lg').click()
  20. sleep(5)
  21. ' 进入员工界面 '
  22. driver.find_elements(By.CLASS_NAME, 'ant-tabs-tab')[5].click() #系统管理
  23. sleep(1)
  24. driver.find_element(By.ID, 'user-permission').click() #用户与权限
  25. sleep(1)
  26. driver.find_element(By.ID, 'person-manage').click() #员工
  27. sleep(1)
  28. reader = csv.reader(open(data_set, encoding='utf-8'))
  29. rows = [row for row in reader]
  30. for i in rows:
  31. print(i)
  32. driver.implicitly_wait(1)
  33. ' 新建员工 '
  34. driver.find_elements(By.CLASS_NAME, 'ant-btn')[2].click() # 新建员工
  35. sleep(1)
  36. ' 输入工号等基本信息 '
  37. driver.find_element(By.ID, 'employeeID').send_keys(i[0]) # 工号
  38. driver.find_elements(By.CLASS_NAME, 'language-input')[-1].send_keys(i[1]) # 姓名
  39. driver.find_element(By.ID, 'email').send_keys(i[2]) # 邮箱
  40. driver.find_element(By.ID, '052c3195-7733-4d24-9c7a-85161df0fe0d').send_keys(i[3]) # 唯一识别码
  41. driver.find_element(By.ID, 'mobile').send_keys(i[7]) # 手机
  42. sleep(6)
  43. ' 点击新增 '
  44. add = driver.find_elements(By.CLASS_NAME, 'ant-btn')[9] #悬浮窗新增
  45. driver.execute_script("arguments[0].scrollIntoView();", add) #拉到最下面
  46. sleep(1)
  47. driver.find_elements(By.CLASS_NAME, 'ant-btn')[9].click() ##点击新增
  48. sleep(1)
  49. ' 设置公司 '
  50. driver.find_elements(By.CLASS_NAME, 'ant-select-selection--multiple')[4].click() #选择公司
  51. sleep(1)
  52. driver.find_element(By.CLASS_NAME, 'ant-radio-input').click() ##选择启源
  53. sleep(1)
  54. driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
  55. ' 设置级别 '
  56. driver.find_elements(By.CLASS_NAME, 'ant-select-selection--multiple')[-1].click() #选择级别
  57. sleep(1)
  58. driver.find_elements(By.CLASS_NAME, 'ant-radio-input')[0].click() ##选择第一个按钮
  59. sleep(1)
  60. driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
  61. ' 选择职位 '
  62. driver.find_element(By.ID, 'position').send_keys(i[6]) # 职位
  63. ' 选择部门 '
  64. driver.find_elements(By.CLASS_NAME, 'hover-input')[-1].click() #选择部门
  65. sleep(1)
  66. driver.find_element(By.CLASS_NAME, 'ant-table-row-expand-icon').click() ##点开小箭头
  67. sleep(1)
  68. panduanhuilian.check_name(i[4], driver, i[5]) ##选择部门
  69. driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
  70. sleep(2)
  71. driver.find_elements(By.CLASS_NAME, 'ant-btn-primary')[-1].click() ##确认
  72. sleep(1)
  73. driver.find_elements(By.CLASS_NAME, 'ant-btn')[10].click() ##最后的保存
  74. sleep(10)
  75. driver.find_element(By.ID, 'person-manage').click() # 返回员工界面
  76. sleep(5)
  1. panduanhuilian.py 为判断部门的方法,部门比较难选择,单独拿出来自定义操作。
  1. from selenium.webdriver.common.by import By
  2. from selenium import webdriver
  3. from selenium.webdriver import Keys
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.common.action_chains import ActionChains
  6. from time import sleep
  7. import csv
  8. ## a为部门参数,b为driver参数,c为小组参数
  9. def check_name(a, b, c):
  10. if a == "xxxx部门" or a == "xxxx部门" : ##这里判断的是不含小组的部门
  11. b.find_elements(By.XPATH, "//*[text()='" + str(a) + "']")[-1].click() ##点击指定部门
  12. elif a == "xxx部" or a == "xxxx部" : #这里判断的是有小组的部门,数组里面的数字3,4需要自己调试
  13. if a == "xxx部":
  14. b.find_elements(By.CLASS_NAME, 'ant-table-row-expand-icon')[3].click() ##点开小箭头
  15. sleep(1)
  16. b.find_elements(By.XPATH, "//*[contains(text(), '" + str(c) + "')]")[-1].click() ##点击指定部门
  17. elif a == "xxxx部":
  18. b.find_elements(By.CLASS_NAME, 'ant-table-row-expand-icon')[4].click() ##点开小箭头
  19. sleep(1)
  20. b.find_elements(By.XPATH, "//*[contains(text(), '" + str(c) + "')]")[-1].click() ##点击指定部门
  21. else:
  22. print("无此部门")

四、汇联易部分截图

标签: python

本文转载自: https://blog.csdn.net/weixin_46764886/article/details/126766303
版权归原作者 Ji影 所有, 如有侵权,请联系我们删除。

“【自动化】Python脚本selenium库完成自动创建汇联易账号”的评论:

还没有评论