selenium_login.py

import unittest
from selenium import webdriver class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window() cls.driver.get('http://pms.yuncesu12.cn/login')
# 用户名错误密码正确
def testlogin(self):
login_account = self.driver.find_element_by_name('account')
login_account.clear()
login_account.send_keys('墨')
# name = self.driver.find_element_by_xpath("//input[@class='layui-input']")
login_password = self.driver.find_element_by_name('password')
login_password.clear()
login_password.send_keys('')
login_button = self.driver.find_element_by_class_name('layui-btn')
login_button.click()
print('用户名或密码错误') @classmethod
def tearDownClass(cls):
# cls.driver.quit()
pass if __name__ == '__main__':
unittest.main(verbosity=2)
selenium_login1.py

import unittest
from selenium import webdriver class LoginTest1(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window() cls.driver.get('http://pms.yuncesu12.cn/login') # 用户名正确密码错误
def testlogin1(self):
login_account = self.driver.find_element_by_name('account')
login_account.clear()
login_account.send_keys('墨子')
# name = self.driver.find_element_by_xpath("//input[@class='layui-input']")
login_password = self.driver.find_element_by_name('password')
login_password.clear()
login_password.send_keys('')
login_button = self.driver.find_element_by_class_name('layui-btn')
login_button.click()
print('用户名或密码错误') @classmethod
def tearDownClass(cls):
# cls.driver.quit()
pass if __name__ == '__main__':
unittest.main(verbosity=2)
selenium_login2.py

import unittest
from selenium import webdriver class LoginTest2(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window() cls.driver.get('http://pms.yuncesu.cn/login') # 用户名密码都错误
def testlogin2(self):
login_account = self.driver.find_element_by_name('account')
login_account.clear()
login_account.send_keys('墨')
# name = self.driver.find_element_by_xpath("//input[@class='layui-input']")
login_password = self.driver.find_element_by_name('password')
login_password.clear()
login_password.send_keys('12346')
login_button = self.driver.find_element_by_class_name('layui-btn')
login_button.click()
print('用户名或密码错误') @classmethod
def tearDownClass(cls):
# cls.driver.quit()
pass if __name__ == '__main__':
unittest.main(verbosity=2)
selenium_login3.py

import unittest
from selenium import webdriver class LoginTest3(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window() cls.driver.get('http://pms.yuncesu12.cn/login') # 用户名正确密码为空
def testlogin3(self):
login_account = self.driver.find_element_by_name('account')
login_account.clear()
login_account.send_keys('')
# name = self.driver.find_element_by_xpath("//input[@class='layui-input']")
login_password = self.driver.find_element_by_name('password')
login_password.clear()
login_password.send_keys('')
login_button = self.driver.find_element_by_class_name('layui-btn')
login_button.click()
print('用户名或密码不能为空') @classmethod
def tearDownClass(cls):
# cls.driver.quit()
pass if __name__ == '__main__':
unittest.main(verbosity=2)
selenium_login4.py

import unittest
from selenium import webdriver class LoginTest4(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window() cls.driver.get('http://pms.yuncesu12.cn/login') # 用户名正确都正确
def testlogin4(self):
login_account = self.driver.find_element_by_name('account')
login_account.clear()
login_account.send_keys('墨子')
# name = self.driver.find_element_by_xpath("//input[@class='layui-input']")
login_password = self.driver.find_element_by_name('password')
login_password.clear()
login_password.send_keys('')
login_button = self.driver.find_element_by_class_name('layui-btn')
login_button.click()
print('登录成功!') @classmethod
def tearDownClass(cls):
# cls.driver.quit()
pass if __name__ == '__main__':
unittest.main(verbosity=2)
testloginsuites.py

from selenium_login import LoginTest
from selenium_login1 import LoginTest1
from selenium_login2 import LoginTest2
from selenium_login3 import LoginTest3
from selenium_login4 import LoginTest4
import unittest login_test = unittest.TestLoader().loadTestsFromTestCase(LoginTest)
login_test1 = unittest.TestLoader().loadTestsFromTestCase(LoginTest1)
login_test2 = unittest.TestLoader().loadTestsFromTestCase(LoginTest2)
login_test3 = unittest.TestLoader().loadTestsFromTestCase(LoginTest3)
login_test4 = unittest.TestLoader().loadTestsFromTestCase(LoginTest4) smoke_test = unittest.TestSuite([login_test,login_test1,login_test2 ,login_test3,login_test4]) if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(smoke_test)

python+selenium自动化测试之登录的更多相关文章

  1. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  2. Python+selenium自动化测试之浏览器基础操作

    **​​前言** 本文主要讲解webdriber框架,Selenium 就像真实用户所做的一样,Selenium 测试可以在 Windows.Linux 和 Macintosh上的 Internet ...

  3. Python&Selenium自动化测试之PO设计模式

    一.摘要 Page Object模式,后面简称PO,他是一种设计思想,在上一章节中,曾经列举了一些在编写自动化测试过程中随着代码量的增加导致的大量代码难以维护.难以扩展.可读性极差等灾难性的事件:那么 ...

  4. python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

  5. selenium自动化测试之整合测试报告

    selenium自动化测试之整合测试报告 标签(空格分隔): 整合报告 如下截图我们添加一个文件叫做:latest_report.py文件, import time import os import ...

  6. python selenium自动化点击页面链接测试

    python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...

  7. Selenium自动化测试之结果处理

    Selenium自动化测试之结果处理 一.断言 断言相当于性能测试中的检查点,常用断言种类很多,具体可以查看断言API:判断预期结果和实际结果是否一致,断言成功,程序继续处理,失败则终止运行,示例如下 ...

  8. Selenium自动化测试之数据驱动及用例管理

    Selenium自动化测试之数据驱动及用例管理 一.TestNg注解介绍 @Test:表示一个测试方法,在运行测试用例过程中,会自动运行@Test注解的方法. 例:

  9. Selenium自动化测试之基本控件使用

    Selenium自动化测试之基本控件使用 1.输入框input: 在Html中样式: <input id="username" type="text"&g ...

随机推荐

  1. CTF密码学常见加密解密总结

    https://blog.csdn.net/qq_40837276/article/details/83080460

  2. 一本通1402 Vigenère密码

    [题目描述]6世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码.Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南 ...

  3. hook键盘钩子 带dll

    library Key; uses SysUtils, Classes, HookKey_Unit in 'HookKey_Unit.pas'; {$R *.res} exports HookOn,H ...

  4. Unity3d游戏代码保护

    现在的游戏项目如果达到一定规模.项目比较创新方竞争对手.项目严重依赖客户端代码那么代码保护还是尽量做,如果不是也没必须瞎折腾. Unity常见代码保护机制: 1.重新编译mono,修改mono_ima ...

  5. 201709-1 打酱油 Java

    思路: 先看能不能买5瓶,因为送的最多,然后看能不能买3瓶,最后一瓶一瓶地买 import java.util.Scanner; public class Main { public static v ...

  6. Flux转Mono next()

    import java.util.LinkedHashMap; import java.util.Map; import java.util.NoSuchElementException; impor ...

  7. vue项目 首页开发 part3

    da当拖动图标时候,只有上部分可以,下部分无响应 swiper 为根页面引用,其中的css为独立,点击swiper标签可以看见其包裹区域只有部分 那么需要修改 就需要穿透样式 外部  >> ...

  8. 计算机网络(6): http cookie

    Cookie作用: 1)帮助管理用户会话信息(用户需要记录的信息:登陆状态等) 2)跟踪浏览器的行为 3)用户自定义设置 实现方式: 当用户浏览带有Cookie的网站时,网站自动为其生成一个唯一的标志 ...

  9. Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE

    一般用到了mybatis框架分页就不用自己写了 直接用RowBounds对象就可以实现,但这个性能确实很低 今天我用到10w级得数据分页查询,到后面几页就迭代了很慢 用于记录 1.10万级数据如下 [ ...

  10. electron-builder打包跳过publish

    默认情况下执行 npm run release使用build命令打包时自动将打包好的安装程序发布到仓库,有时候不需要每次打包都上传到仓库,这时我们只需要在build命令后面加上参数-p never 即 ...