遇到的问题和关键点
- 1.获取chrome控制权
- 2.模拟登录系统
- 3.点击左侧菜单栏
- 4.更换iframe(主页面嵌套了iframe)
- 5.文件上传
- 6.弹框确认(非alert)
扩展知识点
-
获取xpath
方法1:
xpath1.png
方法2(chrome插件):
xpath2.jpg
直接上代码:
def start_personal_credit(ip, userName, password, businessTypeValue, customerNameValue, cardNoValue, maritalStatusValue,
bankDeralerValue, estimateLoanAmountValue, mobileValue, face_jpg, back_jpg):
'''
:param ip:要登录环境的ip
:param userName:要登录环境的用户名
:param password:要登录环境的密码
:param businessTypeValue: 贷款类型:新车、二手车
:param customerNameValue 用户名
:param cardNoValue 身份证号
:param maritalStatusValue 婚姻状态:已婚、未婚、离异、丧偶
:param bankDeralerValue 调查银行
:param estimateLoanAmountValue 预估贷款金额
:param mobileValue 手机号
:param face_jpg 身份证正面照名称
:param back_jpg 身份证反面照名称
:return:
'''
#1.获取chrome控制权##################################################################
driver = webdriver.Chrome(executable_path=r"D:\\chromedriver_win32\\chromedriver.exe")
# 直到页面被加载完(onload事件被触发)才将控制权返回脚本
driver.get('http://' + ip + '/view/index.html')
# 2.模拟登录系统#####################################################################
userName = driver.find_element_by_name('userName')
userName.send_keys(userName)
password = driver.find_element_by_name('password')
password.send_keys(password)
loginBtn = driver.find_element_by_id('loginBtn')
loginBtn.click()
# 启动后要等几秒,让加载效果结束
time.sleep(1)
# 3.点击左侧菜单栏###################################################################
# driver.get('./Modal/task/myTask/index.html')
mytask = driver.find_element_by_xpath("//span[@class='nav-label'][contains(text(),'贷前管理')]")
mytask.click()
time.sleep(1)
mytaskChild = driver.find_element_by_xpath("//a[@class='J_menuItem'][contains(text(),'资信管理')]")
mytaskChild.click()
time.sleep(1)
# 4.更换iframe################################################################
# 发起征信按钮
driver.switch_to.frame("iframe_17") # 3.用name来定位
# driver.get('http://10.10.13.17/view/Modal/loanManage/creditManage/index.html?t=1525932904264')
launchedCreditButton = driver.find_element_by_id('launchedCredit')
launchedCreditButton.click()
# 发起征信页面
# driver.switch_to.default_content() 这里用不了
driver.switch_to.parent_frame()
time.sleep(1)
driver.switch_to.frame('iframe_undefined') # 3.用name来定位
# 贷款类型
businessType = Select(driver.find_element_by_name('businessType'))
businessType.select_by_visible_text(businessTypeValue)
# 客户名称
customerName = driver.find_element_by_name('customerName')
customerName.send_keys(customerNameValue)
# 身份证号
cardNo = driver.find_element_by_id('cardNo')
cardNo.send_keys(cardNoValue)
# 婚姻状况
maritalStatus = Select(driver.find_element_by_name('maritalStatus'))
maritalStatus.select_by_visible_text(maritalStatusValue)
# 调查银行
bankDeraler = Select(driver.find_element_by_id('bankDeraler'))
bankDeraler.select_by_visible_text(bankDeralerValue)
# 预估贷款金额
estimateLoanAmount = driver.find_element_by_name("estimateLoanAmount")
estimateLoanAmount.send_keys(estimateLoanAmountValue)
# 手机号
mobile = driver.find_element_by_name("relavants[0].mobile")
mobile.send_keys(mobileValue)
# 5.文件上传##################################################################
pic1 = driver.find_element_by_xpath('//*[@id="creditForm"]/div[3]/div/div[2]/div[3]/ul/div[1]/div/span')
pic1.click()
time.sleep(1)
m = PyMouse()
k = PyKeyboard()
x_dim, y_dim = m.screen_size()
x = 300
y = 1100
# 鼠标操作:
# x,y 坐标位置
# buttong 1表示左键,2表示点击右键
# n 点击次数,默认是1次,2表示双击
m.click(x, y)
k.type_string(face_jpg)
# 按住alt键
k.press_key(k.enter_key)
# 松开alt键
k.release_key(k.enter_key)
# 按住alt键
k.press_key(k.enter_key)
# 松开alt键
k.release_key(k.enter_key)
time.sleep(1)
# 提交
preservation = driver.find_element_by_id('save')
preservation.click()
time.sleep(1)
# 6.弹框确认#########################################################
sureOption = driver.find_element_by_id('sureOption')
sureOption.click()
纯手打,有问题可评论交流,看到会及时回复,谢谢!

