zoukankan      html  css  js  c++  java
  • 5.1 Python 基础知识 Selenium 3+Python 3 自动化测试

    第 5 章 Selenium 元素定位

    自 Selenium 2.0 之后,WebDriver 就出现在大众的视野中。它是一种利用浏览器原生的 API 封装了一些底层操作的功能,使得它作为一套框架更容易使用。Selenium 支持多种编程语言如 Python、Java、PHP 等。本书采用 Python 3 语言,在开始自动化测试之前有必要先了解一些 Python 基础知识,而后学习 Selenium 八大定位

    5.1 Python 基础知识

    Python 是跨平台、开源免费的高级编程语言之一,在自动化测试行业内使用比较广泛。它支持伪编译,可以将 Python 源程序转换为字节码来提高性能。Python 也支持将多语言程序无缝拼装(比如 Python 调用 C 程序代码,这样可以更好地发挥不同工具或语言的优势来满足不同的需求。本节将简单介绍在 Selenium 中经常用到的 Python 基础知识

    Python 变量,变量不需要事先声明变量名和数据类型,可以直接赋值使用,并且适用于任意类型的对象。变量的类型也是随时变化的。如下面的例子

    在定义变量名时,要注意的事项如下

    · 变量名定义须以字母或下画线开头。
    · 变量名中不能包含空格及标点符号(括号、引号、逗号、问号、句号等)。
    · 不能使用关键字作为变量名,对于关键字可以在导入 keyword 模块后,执行「print(keyword.kwlist)」查看。
    · 变量名对英文的大小写敏感。

    对象模型在 Python 中是一个非常重要的概念,在 Python 中处理的一切都是对象,比如内置对象和非内置对象。内置对象可以直接调用,非内置对象需要导入相关的模块才可以使用

    5.1.1 数字类型

    类型名称有 int、float、complex,分别是整型、浮点型和复杂型数字的类型。Python 中的数字大小没有限制,并且支持复数及其相关计算。如整型「1234、复数型「4+5j。这里常用的整型按照进制分为二进制、八进制、十进制和十六进制

    · 二进制,必须以「0b」开头,如 0b101 等。
    · 八进制,必须以「0o」,如 0o23、0o12 等。
    · 十进制,最常用,如 123、-5、0
    · 十六进制,必须以「0x」开头,如 0x11、0xfb 等。

    5.1.2 字符串类型

    在 Python 中,字符串可以用双引号或单引号来指定,如「上海」或者『上海。测试代码如下

    以上代码执行之后的结果如图 5.1 所示,代码的第 3 行和第 4 行是对字符串的切片操作,其作用是分别打印字符串中的第 2 个汉字和第 1 个汉字


    图 5.1

    在 Python 中会经常用到特殊字符,和其他开发语言一样,需要转义。Python 常用的转义表如图 5.2 所示


    图 5.2

    5.1.3 常用的判断与循环语句

    作为一门编程语言,基本的判断与循环功能是必须的。比较常用的判断语句如「if。下面以一个简单的例子来说明 Python 中判断语句的用法,代码如下

    以上代码输出结果为「数字等于 10。需要注意的有以下两点

    (1)if、elif 及 else 关键字的写法

    (2)每个判断语句都是以冒号「:」结尾的,注意代码中涉及的标点符号都是英文符号

    以上是 if 判断语句的用法,比较容易掌握

    Python 中的 for 循环运用也比较广泛。比如要处理一批 Python 对象(特别是有关联的对象)时,需要对列表、集合内的所有元素进行处理,就要运用 for 循环语句来提高代码效率。下面举例说明 for 的用法,代码如下

    以上代码用两种方法实现了用 for 循环遍历列表元素,都能实现遍历元素的目的:其中第一种方法采用直接遍历元素的方式;而第二种方法采用通过列表下标的方式来获取列表元素

    这里用到了 range)函数。Python 中的 range)函数功能很强大。正如官方 API 描述的那样,如果你需要在一连串的数字上进行迭代,那么内置的 range)函数是一个好的选择。在上例中「len(list1」的意思是获取列表的长度,如在上例中列表的长度为「4「range(4」表示 0、1、2、3 这 4 个数字组成的列表,但其实该函数返回的是一个可迭代对象(range 对象,而不是一个列表,这样也是为了节约内存空间。Range 函数在 Python 中运用非常广泛,语法如下

    range(start,stop,step)

    参数说明

    start:计数是从 start 开始的,默认是从 0 开始的

    stop:计数到 stop 结束,但是不包括 stop 自身

    step:步长,默认为 1

    range)函数的测试代码如下

    以上测试代码执行的结果如图 5.3 所示,运行结果和预期一致


    图 5.3

    5.1.4 集合

    集合的类型名称为「set」或「frozenset。所有的元素放到一对大括号中,元素之间用逗号隔开,且元素不允许重复。set 集合的元素是可变的,而 frozenset 集合的元素是不可变的

    Python 中的集合一般有如下特性:
    · 无序。
    · 集合中的元素必须是不可变类型。

    创建集合的方法可以直接赋值,也可以运用 set 方法,具体如下代码所示:

    以上创建集合代码的执行结果如图 5.4 所示,从遍历集合元素的结果可以看出,集合拥有无序的特性


    图 5.4

    集合的相关运算包括子集、并集、交集和差集等运算

    子集运算的示例代码如下,执行结果如图 5.5 所示

    4

    图 5.5

    以下的示例代码将介绍并集、交集和差集的用法。并集是指与操作符相关的集合的所有元素的集合,去掉重复的元素。交集是指两个集合,由其中既属于 A 集合又属于 B 集合的元素组成的集合。差集(比如 A 集合与 B 集合的差集)是指由所有属于 A 集合但不属于 B 集合的元素所组成的集合

    以上代码的执行结果如图 5.6 所示


    图 5.6

    5.1.5 列表对象

    在 Python 中,列表是非常重要的概念之一。在运用 Python 进行自动化测试的过程中,列表的使用极其广泛。因此,需要重点掌握它的基本用法列表的类型名称为「list,有些类似于其他编程语言的数组。所有的元素都被一对方括号包含,元素之间使用英文逗号分隔,并且它们可以是不同的类型。Python 列表的功能和 C 语言的数值相似,但是 Python 的列表的使用更加灵活简单。在单个列表中,其列表元素可以是不同的数据类型,包括整型数字、浮点型数字、字符串,以及对象等。典型的列表写法如下

    list_1 = [3,6,9,”selenium”,”8.9093”[“a”,”B”,”C”,”abc”

    示例:打印出列表 list_1,代码如下

    以上示例代码的执行结果如图 5.7 所示


    图 5.7

    Python 提供了三种方法向列表对象中添加元素

    (1)append)方法:实现在列表的最后添加一个元素,并且一次只能添加一个元素。示例代码如下

    以上代码的执行结果如图 5.8 所示


    图 5.8

    (2)extend)方法:实现一次添加多个元素功能,新添加的元素也是在列表的最后的位置。示例代码如下

    以上代码的执行结果如图 5.9 所示


    图 5.9

    (3)insert)方法:实现在特定位置上添加元素。这里的位置是指元素所在列表中的位置索引号。注意,索引号是从 0 开始的。示例代码如下

    以上代码的执行结果如图 5.10 所示,实现了在列表的第一个位置上添加元素「0


    图 5.10

    删除列表元素的操作在 Python Selenium 中也会经常碰到,下面介绍常用的三种方法

    (1)remove)方法:删除列表中的特定元素。例如,假定在列表 list_1 中有一个元素值是「3,如果要删除它,代码可以写成「list_1.remove(3,示例代码如下

    以上代码的执行结果如图 5.11 所示,成功地删除了列表元素「3


    图 5.11

    (2)del 方法:删除列表中指定位置的元素。例如,如果要删除列表 list_1 中位置序号为 1 的元素,代码可以写成「del list_1[1,示例代码如下

    以上代码的执行结果如图 5.12 所示,成功地删除了位置序号为 1 的元素,也就是列表中的第 2 个元素


    图 5.12

    (3)pop)方法:将列表中的最后一个元素返回,并将其从列表中删除。示例代码如下

    以上代码的执行结果如图 5.13 所示,成功地返回了列表的最后一个元素「-9」并删除


    图 5.13

    列表分片:是指获取列表中的部分元素作为一个新的列表元素。示例代码如下

    以上代码执行成功,列表分片操作的预期结果如图 5.14 所示


    图 5.14

    接下来,列举三种常用的列表操作符

    (1)+:作用是多个列表直接进行拼接。示例代码如下

    以上代码执行结果如图 5.15 所示,拼接后的列表元素是列表 1 和列表 2 的综合


    图 5.15

    (2)*:作用是实现列表的成倍数的复制和添加,示例代码如下

    以上代码的执行结果如图 5.16 所示,将列表 list_1 中的元素复制 3 倍后返回新列表


    图 5.16

    (3)> 和 <:作用是比较数据型列表的元素。示例代码如下

    以上代码的执行结果如图 5.17 所示,list_1 的元素是小于 list_2 的

    部分内容来自于学习编程期间收集于网络的免费分享资源和工作后购买的付费内容。
  • 相关阅读:
    退出窗口时出现“当”的响声
    屏幕设备环境
    修改一个完全颜色的CListCtrl类
    修改一个完全颜色的CListCtrl类
    MFC中CString.Format的详细用法
    网上阅卷系统自动识别功能代码
    mfc 子对话框数据传给父对话框
    already defined in *.obj
    Object 的使用
    this 函数执行上下文
  • 原文地址:https://www.cnblogs.com/MarlonKang/p/13672226.html
Copyright © 2011-2022 走看看