web页面登录+参数化+多线程自动化脚本

时间:2021-01-03 06:56:12
#coding=utf-8
from selenium import webdriver
import threading
import csv
import time
from selenium.webdriver.common.action_chains import ActionChains
#登录界面的Url,例如:http://www.baidu.com
#url="http://www.baidu.com"
#登录页面的URL
Logninurl=""
#确认页面的URL
Confirmurl=""
#员工自助URL
SelfHelpurl=""
#个人信息页面
SelfInforurl=""
#测试数据存放文件路径和文件
peopleinfo="D:\\A\\huaibin.csv"
#创建文件句柄并赋予该文件读权限
userInfo=file(peopleinfo,"r+")

def Perform_Follow():
	#获取文件中的信息
	reader=csv.reader(userInfo)
	driver=webdriver.Ie()
	#获取文件中每行的信息
	for line in reader:
		driver.get(Logninurl)
		driver.find_element_by_id("").click()
		time.sleep(3)
		driver.find_element_by_class_name("").click()
		time.sleep(3)
		#选择河南电力
		driver.find_element_by_link_text('').click()
		time.sleep(3)
		#输入用户名
		driver.find_element_by_id("username").send_keys(line[0])
		time.sleep(3)
		#输入密码
		driver.find_element_by_id("password").send_keys(line[1])
		time.sleep(3)
		#点击登录按钮
		driver.find_element_by_id("submi").click()
		time.sleep(3)
		
		#进入确认页,点击不在显示
		driver.get(Confirmurl)
		time.sleep(3)
		driver.find_element_by_link_text('不再显示').click()
		time.sleep(3)
		
		#进入员工自助页,点击个人基本信息
		driver.get(SelfHelpurl)
		time.sleep(3)
		driver.find_element_by_link_text('个人基本信息').click()
		time.sleep(3)
		
		#进入到个人信息页
		driver.get(SelfInforurl)
		time.sleep(3)
		if driver.find_element_by_name('xxqrBtn')!=null:
			#点击信息确认
			driver.find_element_by_name('xxqrBtn').click()
			time.sleep(3)
			#点击对话框中的信任
			driver.switch_to_alert().accept()  
			time.sleep(3)
			#点击确认
			driver.switch_to_alert().accept()  
			time.sleep(3)
		
		
		
		#退出系统
		driver.get(SelfHelpurl)
		time.sleep(3)
		driver.find_element_by_link_text('注销').click()
		time.sleep(3)
		
	driver.close()

       
  

#创建数组存放线程    
threads=[] 
#创建100个线程
for i in range(10):
     #针对函数创建线程  
     t=threading.Thread(target=Perform_Follow,args=())
     #把创建的线程加入线程组  
     threads.append(t)  

   
if __name__ == '__main__':
   #启动线程  
   for i in threads:  
        i.start()  
   #keep thread  
   for i in threads:  
        i.join()
userInfo.close()