Python+selenium登录测试

我们以登录新浪微博为案例来讲解,首先进入登录页面,输入用户名和密码,点击登录按钮,并且获得用户信息以验证是否登录成功。

Web地址:https://login.sina.com.cn/signup/signin.php

  在编写功能测试用例时,会假定一个预期结果,在执行用例的过程中把得到的实际结果与预期结果进行比较,从而判断用户的通过或失败。自动化测试用例时右机器去执行的,通常机器不像人一样有思维和判断能力。因此我们在自动化用例执行完成之后,可以从页面上获取一些信息来“证明”用例执行是成功还是失败。

  通常用的最多的几种验证信息分别是title、URL和text。

代码实现:

from selenium import webdriver
from time import sleep

driver=webdriver.Firefox()
driver.get("https://login.sina.com.cn/signup/signin.php")

print("Before login=====================================")

# 打印当前页面title
print(driver.title)

# 打印当前页面URL
print(driver.current_url)

# 执行登录
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys("88888888@qq.com")

driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys("password")
driver.find_element_by_css_selector("[type='submit']").click()
sleep(5)

print("Before login=====================================")

# 再次打印当前页面title
print(driver.title)

# 再次打印当前页面URL
print(driver.current_url)

# 获得登录的用户名
print(driver.find_element_by_css_selector(".me_name").text)

driver.quit()

运行脚本后执行结果如下:


Before login=====================================
新浪通行证登录
https://login.sina.com.cn/signup/signin.php
Before login=====================================
我的新浪_个人中心_新浪网
http://my.sina.com.cn/
Nancy-Test


 title:用于获得当前页面的标题

current_url:用户获得当前页面的URL

通过打印结果显示,可以发现登录前后的title和URL明显不同。因此,可以把登录之后的这些信息存放起来,作为登录是否成功的验证信息。当然,如果URL每次登录都会有所变化,是不能拿来做验证信息的。title可以拿来做验证信息,但它并不能明确的表示是哪个用户登录成功了,因此通过text获取用户文本是很好的验证信息。

 

原文地址:https://www.cnblogs.com/NancyRM/p/8202910.html