因为所有操作之前都要进行登录,如果每次都写一遍登录太繁琐了,我们把登录模块化,以后只要用到它就调用一下就可以了。
1、首先把登录的代码放到login.py的login函数中
#输入密码,下拉列表框中选择“管理员”,点击“登录”
#coding=utf-8
from selenium import webdriver
import unittest
def login(self):
driver=self.driver
driver.maximize_window()
driver.find_element_by_id("txtUserPwd").send_keys("maomao")
m=driver.find_element_by_id('ddlUser')
m.find_element_by_xpath("//option[@value='2']").click()#二次定位:先找到列表框,再找到待选项
driver.find_element_by_name('btnOK').click()
2、通过login.login(self)来调用登录,第一个login是文件名,第二个login是函数名
#coding=utf-8
from selenium import webdriver
import time
import csv
import login
import unittest #unittest是一个单元测试框架
from selenium.webdriver.common.alert import Alert #导入Alert模块,这个必须全写上
class Login(unittest.TestCase):
def setUp(self): #环境搭建setUp
self.driver=webdriver.Firefox()
self.base_url="http://localhost:5151/exam5/Login.aspx"
def test_login(self): #主模块
driver=self.driver #获取到driver,以后就可以直接用driver,否则就一直得用self.driver
driver.get(self.base_url)
login.login(self) #调用登录模块 (把driver传过去)
#打开添加教师信息界面
driver.find_element_by_id('TreeView1t1').click()
#从.csv文件中读取信息
source=open("teacherinfo.csv",'r')
data=csv.reader(source)
#从.csv文件中读取信息,填入文本框中
for key in data:
driver.find_element_by_id('ContentPlaceHolder1_txtTeaNum').send_keys(key[0]) #key[]几代表第几列
driver.find_element_by_id('ContentPlaceHolder1_txtTeaName').send_keys(key[1])
driver.find_element_by_id('ContentPlaceHolder1_txtTeaPWD').send_keys(key[2])
driver.find_element_by_id('ContentPlaceHolder1_btnAdd').click()
#获取警告信息
try:
a=Alert(driver) #实例化Alert对象
print(a.text) #打印警告信息
a.accept() #接受警告(相当于点击“确定”按钮)
driver.get("http://localhost:5151/exam5/admin/teaInfoAdd.aspx") #再次回到添加教师信息界面
except:
print("no alerts display")
source.close()
def tearDown(self): #关闭火狐
self.driver.quit()
if __name__=="__main__":
unittest.main()