2-5-1断言

断言assert

  • 断言一定是选择有指定意义的内容来进行断言
  • 断言的形式:
    1. 一般常用的断言就是通过text来进行
    2. 除此之外,如果需要流程继续执行,可以考虑用显式等待。
  • 目的:用于校验自动化执行是否正确(达到预期结果)
  • 添加断言的节点:
    1. 在流程结束的时候
    2. 或者是在关键节点的时候(关键节点就是在流程中一些特定的重要场景下,可以适当添加断言机制来判定,以便于后续流程的正常运行。)
  • assert函数:assert 预期结果的text==实际定位的text,异常信息 
  •  

     

       
    • 1   #预期结果:可以在购物车中去查找到的手机
      2     assert_text='苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G'
      3     # text=driver.find_element('xpath','//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]').text
      4     #使用断言进行判断是否可以在购物车中去查找到的手机
      5     assert assert_text==driver.find_element('xpath','//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]').text,'加入购物车失败'

       

作业:将商品添加购物车流程,可以在购物车中再添加断言校验

 

 1 # 课后作业:
 2 # 1. 添加商品到购物车流程的自动化实现。商品推荐使用iPhone 6 plus的手机商品来实现流程
 3 # 定位到搜索框,搜索iPhone 6 plus
 4 
 5 from time import sleep
 6 
 7 from selenium import webdriver
 8 
 9 # 获取浏览器驱动
10 from selenium.webdriver.support.wait import WebDriverWait
11 
12 driver=webdriver.Chrome()
13 #访问商城的url
14 
15 driver.get('http://39.98.138.157/shopxo/index.php')
16 #浏览器最大化
17 driver.maximize_window()
18 driver.implicitly_wait(10)
19 
20 
21 def login():
22     #点击登录,进入登录页面
23     driver.find_element('xpath','//div[@class="menu-hd"]/a[text()="登录"]').click()
24     sleep(2)
25     #输入用户名
26     driver.find_element('xpath','//input[@name="accounts"]').send_keys('18700000000')
27     #输入密码
28     driver.find_element('xpath','//input[@name="pwd"]').send_keys('18700000000')
29     #点击登录按钮
30     driver.find_element('xpath','//button[text()="登录"]').click()
31     # #显示等待校验是否登录成功
32     # WebDriverWait(driver,10,0.5).until(
33     #     lambda el:driver.find_element('xpath','//p[text()="登录成功"]'),message='登录失败'
34     # )
35     #使用assert校验是否登录成功
36     assert_text='18700000000'
37     username=driver.find_element('xpath','//span[@class="s-name"]/em[2]').text
38     assert assert_text==username,'登录失败'
39 def AddToCart():
40     #点击搜索框
41     driver.find_element('id','search-input').click()
42     #在搜索框中输入iPhone 6 plus
43     driver.find_element('id','search-input').send_keys('iPhone 6 plus')
44     #点击搜索按钮
45     driver.find_element('id','ai-topsearch').click()
46     #点击手机图标
47     driver.find_element('xpath','//p[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]').click()
48     print(driver.title)
49     #获取到所有句柄
50     hds=driver.window_handles
51     # 切换句柄
52     driver.switch_to.window(hds[1])
53     print(driver.title)
54     #选择套餐
55     driver.find_element('xpath','//li[@data-value="套餐一"]').click()
56     sleep(2)
57     #选择颜色
58     driver.find_element('xpath','//li[@data-value="银色"]').click()
59     sleep(2)
60     #选择容量
61     driver.find_element('xpath','//li[@data-value="32G"]').click()
62     #设置数量
63     driver.find_element('xpath','//input[@type="number"]').clear()
64     driver.find_element('xpath','//input[@type="number"]').send_keys(2)
65     # 点击加入购物车
66     driver.find_element('xpath','//button[@title="加入购物车"]').click()
67     #使用显示等待判断是否加入购物车成功  //p[text()="加入成功"]
68     #
69     # WebDriverWait(driver,10,0.5).until(
70     #     lambda el:driver.find_element('xpath','//p[text()="加入成功"]'),message='加入失败'
71     # )
72     # 使用text判断是否加入购物车成功 //span[text()="购物车"]
73     driver.find_element('xpath','//span[text()="购物车"]').click()
74     #预期结果:可以在购物车中去查找到的手机
75     assert_text='苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G'
76     # text=driver.find_element('xpath','//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]').text
77     #使用断言进行判断是否可以在购物车中去查找到的手机
78     assert assert_text==driver.find_element('xpath','//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]').text,'加入购物车失败'
79 
80 
81 #调用登录方法
82 login()
83 #调用加入购物车的方法
84 AddToCart()

 

 

作业: 实现从登陆到个人中心用户信息修改整个流程,包含头像上传功能,结合断言完善整个自动化流程。

 

 

from time import sleep

from selenium import webdriver

# 获取浏览器驱动
from selenium.webdriver.support.wait import WebDriverWait

driver=webdriver.Chrome()
#访问商城的url

driver.get('http://39.98.138.157/shopxo/index.php')
#浏览器最大化
driver.maximize_window()
driver.implicitly_wait(10)


def login():
    #点击登录,进入登录页面
    driver.find_element('xpath','//div[@class="menu-hd"]/a[text()="登录"]').click()
    sleep(2)
    #输入用户名
    driver.find_element('xpath','//input[@name="accounts"]').send_keys('18700000000')
    #输入密码
    driver.find_element('xpath','//input[@name="pwd"]').send_keys('18700000000')
    #点击登录按钮
    driver.find_element('xpath','//button[text()="登录"]').click()
    # #显示等待校验是否登录成功
    # WebDriverWait(driver,10,0.5).until(
    #     lambda el:driver.find_element('xpath','//p[text()="登录成功"]'),message='登录失败'
    # )
    #使用assert校验是否登录成功
    assert_text='18700000000'
    username=driver.find_element('xpath','//span[@class="s-name"]/em[2]').text
    assert assert_text==username,'登录失败'

def information():
    sleep(3)

    driver.find_element('xpath','//span[text()="个人中心"]').click()
    #修改头像
    driver.find_element_by_link_text('修改头像').click()
    driver.find_element('xpath','//input[@data-validation-message="请选择需要上传的图片"]').send_keys(r'D:\123\图片2.png')
    sleep(2)
    driver.find_element('xpath','//button[text()="确认"]').click()
    #修改资料
    sleep(2)
    driver.find_element('xpath','//a[@class="am-icon-edit"]').click()
    driver.find_element('xpath','//a[text()=" 编辑"]').click()
    driver.find_element('xpath','//input[@placeholder="昵称"]').send_keys('小明')
    driver.find_elements('xpath','//i[@class="am-icon-checked"]')[2].click()
    driver.find_element('xpath','//button[text()="保存"]').click()
    WebDriverWait.until(driver,10,0.5)(
        lambda el:driver.find_element('xpath','//p[text()="编辑成功"]'),'编辑失败'
    )

#调用登录方法
login()

#调用修改个人信息
information()

 

 

 

 

posted on 2021-05-16 18:43  射手九个半  阅读(93)  评论(0编辑  收藏  举报

导航