自动填写网页

步骤:

1、导入要用的库

import os
from selenium import webdriver
import time 

2、用chrome打开要自动填写的网页。首先需要填写登录信息,接着填写验证码,然后进入网页。

driver=webdriver.Chrome('C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')
driver.maximize_window()
driver.get(r"登陆的网页")
xpath= "//*[@class='tLogin']"
driver.find_element_by_xpath("//*[@class='tLogin']").click()
driver.find_element_by_id("_customlogin_WAR_customloginportlet_login").send_keys("登陆的账号")
driver.find_element_by_id("_customlogin_WAR_customloginportlet_jtpwd").send_keys("登陆的密码")

print('请输入验证码:')
a=input()
driver.find_element_by_id("_customlogin_WAR_customloginportlet_LDAPCaptcha").send_keys(a)
driver.find_element_by_class_name("denglu").click()
import time 
time.sleep(5)

3、从“工作台”-“iHR人力资源管理信息系统”-“招聘管理”模块进入

driver.find_element_by_link_text('工作台').click()
time.sleep(2)
driver.find_element_by_link_text('iHR人力资源管理信息系统').click()

print(driver.window_handles)
handles_ = driver.window_handles
driver.switch_to_window(handles_[1])  #由于出现新的标签页,所以这里要跳转到待填的标签页

4、填写总的信息

#填写公告标题
print(driver.window_handles)
handles_ = driver.window_handles
driver.switch_to_window(handles_[1])
driver.find_element_by_xpath("//div[@class='layout-main sty-1']//a[contains(text(), '内部招聘公告')]").click()
time.sleep(3)
driver.find_element_by_xpath("//div[@class='rms_wrapper']//button[@class='btn-secondary-primary mr-10 btn btn-secondary']/span").click()
time.sleep(3)
driver.find_element_by_xpath("//div[@class='input-wrapper']/input[@placeholder='请输入公告标题']").send_keys('test')
#填写发布范围
driver.find_element_by_xpath("//textarea[@placeholder='请选择发布范围']").click()
driver.find_element_by_xpath("//div[@class='tree__node-title text-nowrap']//span[@class='form-checkbox__inner']").click()
time.sleep(3)
driver.find_element_by_xpath("//div[@class='select__selection']").click()
driver.find_element_by_xpath("//div[@class='select-tree']//span[@class='select-tree-text']").click()
#修改文本框的日期(由于系统要求的日期有格式,这里输入后一直达不到系统的要求,后续要手动输入
pag=driver.find_element_by_xpath("//div[@class='input-wrap']/input[@placeholder='请选择公告发布时间']")
driver.execute_script("arguments[0].removeAttribute('readonly')",pag)
driver.find_element_by_xpath("//div[@class='input-wrap']/input[@placeholder='请选择公告发布时间']").send_keys('2021-02-01 00:00:00 ~ 2021-02-08 17:00:00')

#上传附件
driver.find_element_by_xpath("//span[@class='text-primary font-weight-bold']").click()

5、开始添加每个岗位的信息

#岗位名称、招聘人数
driver.find_element_by_xpath("//div[@class='con']//button[@class='btn-secondary-primary mr-10 btn btn-secondary']").click()
time.sleep(3)
print('岗位名称为:')
driver.find_element_by_xpath("//div[@class='input-wrapper']/input[@class='input']").send_keys('test')
driver.find_element_by_xpath("//div[@class='form-group row']/div[@class='form-group__content col']/div[@class='input-wrapper']/input[@class='input']").send_keys(1)

#所属公司
driver.find_element_by_xpath("//div[@class='row']/div[1]//div[@class='vue-treeselect__input-container']/input[@class='vue-treeselect__input']").click()
time.sleep(1)
first_btn=driver.find_element_by_xpath("//div[@class='row']/div[1]//div[@class='vue-treeselect__menu-container']//div[@class='vue-treeselect__label-container']/label[@class='vue-treeselect__label']")
first_btn.click()

#所属部门
driver.find_element_by_xpath("//div[@class='row']/div[5]//div[@class='vue-treeselect__input-container']/input[@class='vue-treeselect__input']").send_keys('龙岗分公司')
time.sleep(1)
first_btn=driver.find_element_by_xpath("//div[@class='row']/div[5]//div[@class='vue-treeselect__menu-container']//div[@class='vue-treeselect__label-container']/label[contains(text(),'龙岗分公司')]")
first_btn.click()

#学历
driver.find_element_by_xpath("//div[@class='col-xs-12 col-sm-12 col-md-12 col-lg-6 col-xl-6']/div[@class='form-group row']/div[@class='form-group__content col']/div[@class='select']/div[@class='select__selection']/span[@class='select__selection-icon']").click()
time.sleep(8)
driver.find_element_by_xpath("//div[@class='select__menu']/ul[@class='select__options']//*[contains(text(),'大学本科')]").click()

#工作年限
driver.find_element_by_xpath("//div[@class='con pb-0']/div[2]/div[@class='col-xs-12 col-sm-12 col-md-12 col-lg-6 col-xl-6']/div[@class='form-group row']/div[@class='form-group__content col']/div[@class='select']/div[@class='select__selection']/span[@class='select__selection-icon']").click()
time.sleep(5)
driver.find_element_by_xpath("//div[@class='select__menu']/ul[@class='select__options']//*[contains(text(),'1年及以上')]").click()

#岗位描述
driver.find_element_by_xpath("//div[@class='con pb-0']/div[3]/div[@class='col-xs-12 col-sm-12 col-md-12 col-lg-6 col-xl-6']/div[@class='form-group row']/div[@class='form-group__content col']/div[@class='input-textarea-wrapper']/textarea[@class='input']").send_keys('testtesttest')

#任职条件
driver.find_element_by_xpath("//div[@class='con pb-0']/div[4]/div[@class='col-xs-12 col-sm-12 col-md-12 col-lg-6 col-xl-6']/div[@class='form-group row']/div[@class='form-group__content col']/div[@class='ml-50 input-textarea-wrapper']/textarea[@class='input']").send_keys('testtesttesttest')

#内部甄选流程
driver.find_element_by_xpath("//div[@class='search-form p-0']/form[@class='form form--label-right']/div[4]/div[@class='con pb-0']/div[@class='row']/div[@class='col-xs-12 col-sm-12 col-md-12 col-lg-6 col-xl-6']/div[@class='form-group form-group--required row']/div[@class='form-group__content col']/div[@class='select']/div[@class='select__selection']/span[@class='select__selection-icon']").click()
time.sleep(5)
driver.find_element_by_xpath("//div[@class='select__menu']/ul[@class='select__options']/li[@class='select__item']/*[contains(text(),'内部招聘甄选流程')]").click()
#点击保存
driver.find_element_by_xpath("//div[@class='top-fixed pt-20']/div[@class='fixed']/a[2]").click()

6、以上就完成了一个总体信息的填写、附件上传和内部信息的填写。

总的来说,自动填写网页是一项很繁琐的工作,每一步都要准确定位,而且经常出现定位不到的情况,所以很磨耐心,但是完成之后,很有成就感!

问题探讨:其中在定位日期时,由于日期的readonly属性,我们需要将该属性删除,但是一直不成功,详情见图,请各位不吝赐教!

问题:

通过删除readonly成功填入日期

自动填写网页_第1张图片

但是系统提示如下:

自动填写网页_第2张图片

最终要自己手动点日期

自动填写网页_第3张图片
自动填写网页_第4张图片

代码如下:

pag=driver.find_element_by_xpath("//div[@class='input-wrap']/input[@placeholder='请选择公告发布时间']")
driver.execute_script("arguments[0].removeAttribute('readonly')",pag)
driver.find_element_by_xpath("//div[@class='input-wrap']/input[@placeholder='请选择公告发布时间']").send_keys('2021-02-01 00:00:00 ~ 2021-02-08 17:00:00')

所以一直没搞懂为什么,请赐教。

你可能感兴趣的:(python,selenium)