Selenium2+python自动化10-登录案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

以上是登录部落论坛www.hordehome.com的脚本参考,小伙伴们可以拿论坛作为测试项目实践下。












































以上是关于Selenium2+python自动化10-登录案例的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化14-iframe

Selenium2+python自动化14-iframe

Selenium2+python自动化48-登录方法(参数化)

Selenium2+python自动化48-登录方法(参数化)转载

Selenium2+python自动化40-cookie相关操作

Selenium2+python自动化40-cookie相关操作转载