Selenium Web自动化测试(一)基础课程

 

课程内容:

  • Python3的基本语法和函数面向对象编程
  • 学会使用 PythonIde(社区免费版) 和快速整理代码
    •  PEP8编码 
    • Ctrl+Alt+L
  • Project文件模块读写文件 路径拼接
  • WebDriver API
  • 断言unittest.TestCase

 

Selenium历史

  • IE Firefox Chrome   选择拉起 根据市场份额
  • B/s 结构
  • Selenium Rc 依赖Js,并且效率较低
  • WebDriver 3.x版本

pip install -U selenium安装最新版本selenium

  

 

 

WebDriver是什么

  • Py -3 –m pydoc – p 4567
    • (Web应用程序自动测试的快速框架)
  • 3.0取代了嵌入到被测Web应用中的JavaScript
  • 强大的API模拟用户输入(send_keys,12306验证码)\操作浏览器

 

 

Selenium拉起浏览器

  • 新建了项目&文件 webProject/testcase(保存测试用例)/test_1_query.py

  • 新建文件夹driver/驱动浏览器.exe 文件

安装的依赖,在Mac上不方便配置环境变量

注意浏览器版本,不要升到最新版本

  • 调用selenium核心:From selenium import webdriver

selenium相当于一个模块包,webdriver相当于一个类

from 路径 import 内容

  • 类可以继承超类,超类和单元测试类不能一起被继承(python允许多态继承)

超类即object类

 

  • 类全局变量 路径拼接 读取驱动浏览器.exe
import os,time
import unittest

currentPath = os.path.abspath(os.path.dirname(__file__)) #当前目录
projectPath = os.path.split(currentPath)[0] #取下标
toolsPath = projectPath.replace("\\",'/')+'/driver/chromedriver'
url = 'https://www.baidu.com'

print(currentPath)
print(projectPath)
print(toolsPath)

D:\sdk\tools\untitled4\testcase  (上一级文件夹路径,类型为str)
D:\sdk\tools\untitled4
D:/sdk/tools/untitled4/driver/chromedriver

 

定位到截图目录

toolsPath = projectPath.replace("\\",'/')+'/driver/chromedriver'

 

  • 类外面全局变量 路径拼接
class SavePng(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome(executable_path = toolsPath)
        cls.driver.get(url) #成员方法
        cls.driver.implicityl_wait(10) #隐式等待

类和类的调用需要实例化

 

  • Path.replace(“//”,”\”)
  • 缺乏驱动执行文件会抛错
  • 拉起浏览器(executable_path) 可执行
    • @classmethod装饰器

 

 

Selenium 拉起浏览器

  • 构造函数 成员变量driver
    • 需要被实例化中实例
    • 超类中使用
    • 加了装饰器,不需要被实例化
    • 归属当前类本身
  • 函数形参 类初始化 def __init__(self,url, imp_time):
    • 超类需要初始化
    • url,imp_time为入参;数据类型、顺序一致
  • self.driver = webdriver.Chrome()  (右边连接左边)
  • self.driver.get(url)   testerhome网站
  • self.driver. implicitly_wait(单位秒) 隐式等待 全局有效的 最好不要用 用显式等待、强制等待和输入等待(实际8秒,设置20秒,不会浪费时间)
  • return  和是否需要return 在堆里不被释放掉就不需要return
import os,time
import unittest

currentPath = os.path.abspath(os.path.dirname(__file__)) #当前目录
projectPath = os.path.split(currentPath)[0] #取下标
toolsPath = projectPa
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值