zoukankan      html  css  js  c++  java
  • Selenium2+python自动化10-登录案例【转载】

    前言    

    前面几篇都是讲一些基础的定位方法,没具体的案例,小伙伴看起来比较枯燥,有不少小伙伴给小编提建议以后多出一些具体的案例。本篇就是拿部落论坛作为测试项目,写一个简单的登录测试脚本。 

    在写登录脚本的时候呢,先要保证流程能跑起来,然后才是去想办法优化代码,让自己的脚本看起来更舒服,具有良好的可读性。

    一、登录

        1.先打开浏览器

        2.打开论坛主页:"http://www.hordehome.com/"

        3.查找元素之前可以先设置元素等待:implicitlywait()

        4.点登录按钮,弹出登录框

        5.输入用户名、密码,然后点登录

    # coding:utf-8
    from selenium import webdriver
    driver = webdriver.Firefox()
    driver.get("http://www.hordehome.com")
    # 设置隐试等待10秒
    driver.implicitly_wait(10)
    # 点登录按钮,输入账号密码后登录
    driver.find_element_by_id("ember886").click()
    driver.find_element_by_id("login-account-name").send_keys("YOYO")
    driver.find_element_by_id("login-account-password").send_keys("xxxooo")
    driver.find_element_by_css_selector(".btn.btn-large.btn-primary").click()

    二、检查结果

        1.登录完成之后,需要检查是否登录成功,这里就需要有个检查点,我这边选择的是查看登录后头像的属性

        2.先定位到登录头像,通过get_attribute()方法获取到这个对象的title属性

        3.判断获取到的值,与期望结果是否一致

        4.符合预期结果测试通过

        5.不符合预期结果测试不通过

    # 获取登录头像的title属性值
    t = driver.find_element_by_id("current-user").get_attribute("title")
    # 判断返回结果
    if t == u"个人页面、消息、书签和设置":
       print("登录成功")
    else:
       print("登录失败")

     (注意:这里网站已经更新过了,学下思路就行,不要copy)

    三、退出登录

        1.测试完之后,别忘了最后退出登录

        2.退出登录后,关闭浏览器

    # 退出登录
    driver.find_element_by_id("current-user").click()
    driver.find_element_by_id("ember1097").click()
    driver.quit()

     
    四、登录函数

        1.虽然上面的代码能实现登录,但整个代码跟记流水账一样,没什么可读性。如果我想换个账号登录,这时候还得找到登录的账号和密码位置,比较费时。

        2.我们可以把登录和退出写出两个函数,这样看起来更舒服一点。

        3.把登录的账号和密码参数化

    # coding:utf-8
    from selenium import webdriver
    def login(user,password):
       driver.get("http://www.hordehome.com")
       driver.implicitly_wait(10)
       driver.find_element_by_id("ember886").click()
       driver.find_element_by_id("login-account-name").send_keys(user)
       driver.find_element_by_id("login-account-password").send_keys(password)
       driver.find_element_by_css_selector(".btn.btn-large.btn-primary").click()
       return driver
    def logout():
       driver.find_element_by_id("current-user").click()
       driver.find_element_by_id("ember1097").click()
       driver.quit()

     五、运行用例

        1.先调用登录函数

        2.检查登录结果

        3.退出登录,并关闭浏览器

    if __name__ == "__main__":
       driver = webdriver.Firefox()
       driver = login("YOYO", "xxxooo")
       t = driver.find_element_by_id("current-user").get_attribute("title")
       if t == "个人页面、消息、书签和设置":
           print("登录成功")
       else:
           print("登录失败")
       logout()
  • 相关阅读:
    The type java.util.Map$Entry cannot be resolved. It is indirectly referenced。。.相似的错误
    ViewPager的使用
    mysql学习笔记 第九天
    mysql学习笔记 第八天
    mysql学习笔记 第七天
    mysql学习笔记 第六天
    mysql学习笔记 第五天
    Vue.js最佳实践(五招让你成为Vue.js大师)
    前端路由简介以及vue-router实现原理
    Maven整体认识——详细介绍
  • 原文地址:https://www.cnblogs.com/caoj/p/7799860.html
Copyright © 2011-2022 走看看