前言
登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了。
一、登录方法
1.把输入账号、输入密码、点击登录按钮三个步骤写成一个方法
2.然后把输入的账号和密码参数化
下面以开源项目OPMS为例,搭建OPMS系统
# coding:utf-8 from selenium import webdriver driver=webdriver.Chrome() driver.get("http://47.98.186.11:8088/login") def login(user,passwd): driver.find_element_by_name("username").send_keys(user) driver.find_element("name","password").send_keys(passwd) driver.find_element_by_xpath("//button[@type='submit']").click() login("libai","123456")
二、用例
1.下面的用例可以调用前面写的登录方法,这样不用每次都去写登录流程
2.判断是否登录成功,我这里取的登录成功后的账户名
# coding:utf-8 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait driver=webdriver.Chrome() def login(url,user,passwd): driver.get(url) driver.find_element_by_name("username").send_keys(user) driver.find_element("name","password").send_keys(passwd) driver.find_element_by_xpath("//button[@type='submit']").click() name=WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//div[@class='menu-right']/ul/li[2]/a")).text #清除所有cookies driver.delete_all_cookies() return name==user url="http://47.98.186.11:8088/login" print(login(url,"libai","123456")) print(login(url,"xi","333"))
运行结果:
True Traceback (most recent call last): File "E:/study/selenium_study/a825.py", line 16, in <module> print(login(url,"xi","333")) File "E:/study/selenium_study/a825.py", line 10, in login name=WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//div[@class='menu-right']/ul/li[2]/a")).text File "D:Program Filespython37libsite-packagesseleniumwebdriversupportwait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
三、判断方法
1.如果用上面的方法去判断的话,有个缺陷,当登录不成功的时候,页面是不会跳转的,所以会报异常
2.这个时候,可以加python异常处理:try,except
参考:https://www.runoob.com/python/python-exceptions.html
# coding:utf-8 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait driver=webdriver.Chrome() def login(url,user,passwd): driver.get(url) driver.find_element_by_name("username").send_keys(user) driver.find_element("name","password").send_keys(passwd) driver.find_element_by_xpath("//button[@type='submit']").click() try: name=WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//div[@class='menu-right']/ul/li[2]/a")).text #清除所有cookies driver.delete_all_cookies() return name==user except: return False url="http://47.98.186.11:8088/login" print(login(url,"libai","123456")) print(login(url,"xi","333"))
运行结果:
True False