selenium+python自动化测试web页面遇到的问题

遇到的问题和关键点

  • 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()

纯手打,有问题可评论交流,看到会及时回复,谢谢!

你可能感兴趣的:(selenium+python自动化测试web页面遇到的问题)