• python27+selenium3自动化登录测试


    #encoding:utf-8
    '''
    方法:通过selenium的webdriver模块结合unittest单元测试框架自动化登录系统,下文枚举了几个测试用例登录情况,其中包括用户名和密码的验证以及滑动模块的滑动验证。
    作者:范先生
    时间:2018年4月
    '''
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import unittest
    import time

    class LoginCase(unittest.TestCase):
    def setUp(self):
    self.driver = webdriver.Chrome(executable_path="D:\4software\Python\python27\driver\chrome\chromedriver")
    self.driver.maximize_window()

    #定义登录系统方法
    def Login(self,username,password,offset):
    self.driver.get("http://192.168.20.21")
    time.sleep(2)
    self.driver.find_element_by_id("username").clear()
    self.driver.find_element_by_id("username").send_keys(username)
    self.driver.find_element_by_id("password").clear()
    self.driver.find_element_by_id("password").send_keys(password)
    source =self.driver.find_element_by_xpath("//*[@id='form1']/div/label[3]/div/div/div[3]/div")
    ActionChains(self.driver).drag_and_drop_by_offset(source, offset, 0).perform()
    time.sleep(1)
    self.driver.find_element_by_xpath("//*[@id='form1']/div/button").click()
    time.sleep(5)

    def test_login_success(self):
    '''用户名和密码正确的情况'''
    self.Login('superadmin','superxxxxx123',300)
    link = self.driver.find_element_by_xpath("//*[@id='button-1252-btnInnerEl']")
    # 用assertTrue断言“上网用户管理”在"//*[@id='button-1252-btnInnerEl']"里面
    self.assertTrue(u'上网用户管理' in link.text)
    self.driver.get_screenshot_as_file("D:\4software\Python\script\untitled\login_success.png")
    print "Login is ok !"

    def test_paswd_error(self):
    '''用户名正确,密码错误的情况'''
    self.Login('superadmin','1234567',300)
    error_message = self.driver.find_element_by_xpath('//*[@id="dvMsgCT"]').text
    self.assertIn(u'帐号或密码错误',error_message)
    self.driver.get_screenshot_as_file("D:\4software\Python\script\untitled\login_paswd_error.png")
    print "assert is right !"

    def test_paswd_tabsoms(self):
    '''用户名正确,密码非法字符的情况'''
    self.Login('superadmin','######',300)
    error_message = self.driver.find_element_by_xpath('//*[@id="dvMsgCT"]').text
    self.assertIn(u'帐号或密码错误',error_message)
    self.driver.get_screenshot_as_file("D:\4software\Python\script\untitled\login_paswd_tabsomes.png")
    print "assert is right !"

    def test_paswd_null(self):
    '''用户名正确,密码为空'''
    self.Login('superadmin','',300)
    error_message = self.driver.find_element_by_xpath('//*[@id="dvMsgCT"]').text
    self.assertIn(u'账号或密码不能为空',error_message)
    self.driver.get_screenshot_as_file("D:\4software\Python\script\untitled\login_paswd_null.png")
    print "assert is right !"

    def test_paswd_offset_Low(self):
    '''用户名正确,密码正确,滑块没有移动到指定位置!'''
    self.Login('superadmin','supermanager123',100)
    error_message = self.driver.find_element_by_xpath('//*[@id="dvMsgCT"]').text
    self.assertIn(u'请拖动滑动解锁验证!',error_message)
    self.driver.get_screenshot_as_file("D:\4software\Python\script\untitled\login_paswd_offset_Low.png")
    print "assert is right !"

    def tearDown(self):
    time.sleep(2)
    # print '/n'
    # print u"测试通过!"
    self.driver.quit()

    if __name__=="__main__":
    unittest.main()
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    执行结果:

    D:4softwarePythonpython27installpython.exe D:/4software/Python/script/untitled/login.py
    Login is ok !
    .assert is right !
    .assert is right !
    .assert is right !
    .assert is right !
    .
    ----------------------------------------------------------------------
    Ran 5 tests in 126.282s

    OK

  • 相关阅读:
    响应式设计的 5 个 CSS 实用技巧
    iframe的高度自适应的方法
    HDOJ1285 比赛排名(拓扑排序)
    GENIA项目GENIA语料库
    HDOJ1102 修路问题(最小生成树Prim)
    二叉树的一些操作
    GENIA项目综述论文(E99)
    GENIA项目主页
    读《统计自然语言处理》有笔记——语料库与知识词汇库
    HDOJ2535 ( Vote ) 【水题】
  • 原文地址:https://www.cnblogs.com/ddpeng/p/8882765.html
Copyright © 2020-2023  润新知