Web自动化测试,Python

selenium

搭建selenuim测试环境

安装webdriver_helper
pip install webdriver_helper 版本为2.0以上的收费版会存在使用不成功的情况,请下载版本为2.0以下的

进行自动化测试实践

import time

from selenium.webdriver.common.by import By
from webdriver_helper import get_webdriver

# 获取webdriver(使用with关键字自动关闭webdriver)
with get_webdriver() as driver:
    # 加载网页
    driver.get("http://101.34.221.219:8010/")
    # 浏览器最大化
    driver.maximize_window()
    # 进行登录操作
    driver.find_element(By.LINK_TEXT, "登录").click()
    driver.find_element(By.XPATH, '//input[@placeholder="请输入用户名/手机/邮箱"]', ).send_keys("tiankai")
    driver.find_element(By.XPATH, '//input[@placeholder="请输入登录密码"]', ).send_keys("123123")
    driver.find_element(By.XPATH, '//button[text()="登录"]').click()
    # 等待网页跳转
    time.sleep(0.5)
    # 获取登陆操作后服务器返回的消息
    msg = driver.find_element(By.XPATH, '//p[@class="prompt-msg"]').text
    # 进行断言
    assert msg == "登录成功"
    # 跳转到首页
    time.sleep(3)
    driver.get("http://101.34.221.219:8010/")
    # 进行订单操作
    driver.find_element(By.XPATH, '//a[starts-with(text(), "vivo")]').click()
    time.sleep(0.5)
    # 转换网页到最近打开的网页
    driver.switch_to.window(driver.window_handles[-1])
    # 打印当前的浏览器网页的URL
    # print(driver.current_url)
    time.sleep(0.5)
    driver.find_element(By.ID, "text_box").send_keys("2")
    driver.find_element(By.XPATH, '//button[@title="点此按钮到下一步确认购买信息"]').click()
    # 等待页面跳转
    time.sleep(1)
    # 处理弹出,点击确定
    driver.switch_to.alert.accept()

    driver.find_element(By.XPATH, '//span[text()="货到付款"]').click()

    time.sleep(1)

    # 处理弹出,点击确定
    driver.switch_to.alert.accept()

    driver.find_element(By.XPATH, '//button[@title="点击此按钮,提交订单"]').click()

    time.sleep(0.5)
    msg = driver.find_element(By.XPATH, '//p[@class="prompt-msg"]').text
    assert msg == "操作成功"

暴露出问题:
1.大量重复代码
2.sleep等待,不够优雅
3.每次执行用例需要重新登录
解决方法:使用pytest

selenium中获取元素的八个方法(按照定位方法,分为三组)

  • 定位a标签:LINK_TEXT PARTIAL_LINK_TEXT
  • 使用属性定位:ID NAME CLASS_NAME TAG_NAME
  • 通用定位:CSS_SELECTOR XPATH
XPATH的基本语法
  • 选择元素
    XPath使用路径表达式来选择元素。路径表达式从根节点开始,使用斜杠(/)分隔不同的元素来指定元素的位置。例如,以下路径表达式将选择窗口下的body下的所有input元素:
    /window/body/input
  • 选择属性
    XPath也可以用于选择元素的属性。在元素名称后面加上@符号,然后指定属性名称即可选择属性。例如,以下路径表达式将选择所有book元素的category属性:
    /window/body/input/@category
  • 选择文本
    XPath可以选择元素的文本内容。使用text()函数来选择元素的文本。例如,以下路径表达式将选择第一个input元素的文本内容:
    /window/body/input[1]/text()
  • 使用通配符
    XPath支持通配符*,它可以匹配任何元素。例如,以下路径表达式将选择所有元素:
    //*

pytest

pytest的环境搭建

安装pytest
pip install pytest

pytest的使用

POM(Page Object Model)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值