zoukankan      html  css  js  c++  java
  • 第 4 章 前端技术简介 Selenium 3+Python 3 自动化测试

    第二篇 基 础 篇

    古人云千里之行,始于足下」就是用来说明基础的重要性的。所以我们需要掌握并熟练运用 Selenium 的关键的基础功能点,需要多实战、多尝试,才能在各种失败或错误中积累经验。本篇的章节如下

    第 4 章 前端技术简介
    第 5 章 Selenium 元素定位
    第 6 章 Selenium 常用方法
    第 7 章 Selenium WebDriver 进阶应用


    第 4 章 前端技术简介

    在学习用 Selenium 元素定位相关内容之前,需要掌握一定的前端知识。Web 自动化测试与 Web UI 有着密切的联系,比如 HTML、CSS 和 JavaScript 构成了 Web 前端的三大基石在这一章中,主要介绍 Selenium 自动化涉及的前端技术。用一句话来概括就是:HTML是总体的脉络、CSS是皮肤组织,而JavaScript是嵌入两者之间的神经组织。

    4.1 HTML

    HTML 中文译名为「超文本标记语言」。大家经常浏览的网页,其实就是超文本标记语言。超文本标记语言借助于其他的 Web 技术可以创造出功能非常强大的网页。因此,HTML 是 Web 编程的基础。
    HTML 文件跟通常意义上的文本文件是不一样的,它不仅有文本内容,还带有各种标签(Tag),比如 <html>、<body> 等。

    4.1.1 HTML 元素

    HTML 元素用来标记文本、表示文本的内容,如 body、div、br、img 等都属于 HTML 元素。HTML 元素用「Tag」表示「Tag」以「<」开始,以「>」结束。并且「Tag」通常是成对出现的,如 <html></html>,分别叫元素的开始标签和结束标签。到目前为止 HTML 的标签还没有区分大小写,即 <HTML>、<HTml> 和 <html> 其实是相同的意思

    HTML 元素是可以拥有属性的。属性可以扩展 HTML 元素的能力,如「Table」标签可以使用「Border」属性来设置「Table」元素的边框,如果要设置一个无边框的表格,则可以设置为「<table border = “0”>。通过例子可以发现,标签的属性通常由属性名和属性值组成,如上例「Border」是属性名,而「0」是属性值

    HTML 有一些基础的 HTML 元素

    正文标题标签是用来定义正文标题的,字体从大到小,每个标题自成一段,代码如下

    执行上面 HTML 代码,页面显示如图 4.1 所示

    图 4.1

    段落标签,HTML 用段落标签划分正文段落。标签为 <p> 和 </p>,用法如「<p>This is a paragraph</p>,并且段落标签是自动换行的

    换行标签,可以通过使用标签「 <br> 」实现内容换行的功能。

    HTML 注释标签,在实际应用中,HTML 代码会有一些注释标签用于解释代码,用法如「<!--这是一个注释标签-->

    常用文本格式的标签如下

    · <b></b>,文本加粗。
    · <i></i>,文本斜体。
    · X<sub>2</sub>,其中 2 是下标。
    · X<sup>2</sup>,其中 2 是上标。

    HTML 特殊字符用法,最常用的字符实体如表 4.1 所示。用法是,如果要在 HTML 页面上显示一个空格,不能直接用空字符去表示,而是用字符「&nbsp,其他特殊字符的用法和空格字符类似

    表 4.1

    HTML 超链接示例源码如下,页面上有 2 个超链接,一个是「百度搜索,另一个是「搜狗搜索。HTML 用 <a> 标签表示超链接,这个超链接可以指向任何一个文件源,比如另外一个 HTML 网页、一段视频、一个图片等。超链接中的「href」属性表示链接文件的路径

    超链接元素的「target」属性可以实现在新窗口中打开链接文件,源码如下

    HTML 框架标签,使用框架(frame)实现了在浏览器窗口中同时显示多个网页的作用,每一个 frame 标签内的网页是相对独立的,即网页内容是相互不影响的。frame 案例如下,主 HTML 文件源码

    其中用到的 f_a.html 也存放在当前目录下,所以在用「src」属性设置文件路径的时候,用的是相对路径「./f_a.html。f_a.html 文件源码如下

    f_b.html 也存放在当前目录下,所以在用「src」属性设置文件路径的时候,用的是相对路径「./f_b.html。f_b.html 源码如下

    主 HTML 页面效果如图 4.2 所示,按照「frame」所设置的,f_a.html 页面宽度占比为 40%,而 f_b.html 页面宽度占比为 60%

    图 4.2

    HTML 表格元素用「<table>」表示,一个表格可以分为很多行,用标签「<tr>」表示;每行又可以分成很多单元格,用标签「<td>」表示。如果要创建 2 行 2 列的表格,HTML 代码如下

    HTML 列表有三种不同的列表形式:排序列表、非排序列表和定义列表

    (1)排序列表。排序列表由标签「<ol>」开始,每个列表项由标签「<li>」开始,示例 HTML 代码如下,HTML 页面效果如图 4.3 所示

    图 4.3

    (2)非排序列表。非排序列表不用数字标记每个列表项,而是采用一个符号标志每个列表项,比如黑色圆点等。它由标签「<ul>」开始,每个列表项由标签「<li>」开始。示例 HTML 代码如下,HTML 页面效果如图 4.4 所示

    图 4.4

    (3)定义列表。定义列表由标签 <dl> 开始,每个列表项由 <dt> 开始,再由 <dd> 标签对每项进行定义,示例 HTML 代码如下,HTML 页面效果如图 4.5 所示

    图 4.5

    4.1.2 HTML 表单

    HTML 表单是 HTML 的一个重要组成部分,可以通过表单抓取和提交信息,实现对数据库的增、删、改、查

    表单一般由三个要素组成:表单标签、表单域和表单按钮

    常用的表单控件如下

    · 单行文本输入框:input type=「text

    · 多行文本输入框:input type=「textArea

    · 提交表单按钮:input type=「submit

    · 复选框:input type=「checkbox

    · 单选框:input type=「radio

    · 下拉框:select

    · 密码输入框:input type=「password

    · 隐藏域:input type=「hidden

    表单示例代码如下,HTML 页面效果如图 4.6 所示

    图 4.6

    4.2 CSS

    CSS 指的是层叠样式表,其定义了如何显示 HTML 元素的规则CSS 主要由选择器和声明构成,以代码「h1 {color:blue;font-size:10px」为例,其中「h1」为选择器,大括号内为一条或多条声明,每条声明之间用分号」分隔,声明中分别定义了标题的字体颜色和字体大小

    CSS 注释是用来解释代码的,浏览器会忽略它,注释语句以「/*」开始,以「*/」结束。示例如下

    /*这是一个 CSS 注释*/

    CSS ID 选择器可以标定由 ID 的 HTML 元素指定的样式ID 选择器由「#」来定义。应用示例如下,其效果就是将元素 ID 属性值为「p1」的段落文字居中,并且使字体颜色为红色

    CSS Class 选择器也是用于描述一组元素的样式「class」选择器有别于「id」选择器「class」可以在多个元素中使用。应用示例如下,实现了将段落标签 <p> 内文本居中的功能

    4.3 JavaScript

    JavaScript 是前端开发常用的语言之一,有如下特点

    (1)是一门动态类型语言,变量类型无限制,可随时改变变量类型

    (2)是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。常被 HTML 网页用来添加动态功能,如响应用户的各种操作。其目的是让前端逻辑在客户端执行,增强用户交互性并减少服务器端的压力

    (3)和其他面向对象的语言一样具有抽象、封装、继承和多态等特性

    (4)JavaScript 中有一个原型对象的概念,也就是在类的基础上添加方法,方法只在类中存放,不会在每个对象中存储

    JavaScript 的数据类型,包含了基本数据类型:String、boolean、Number、undefined 和 null。引用数据类型:Object、Array、Date、RegExp、Function

    将以下 JavaScript 代码运用到 HTML 页面中,用来实现获取页面所有的 CheckBox 功能

    以上代码说明了用 JavaScript 对页面 DOM 对象的操作比较容易和稳定,这些特性对自动化测试来说比较重要。JavaScript 结合 Selenium 实现自动化测试将在后面章节中详细介绍

    部分内容来自于学习编程期间收集于网络的免费分享资源和工作后购买的付费内容。
  • 相关阅读:
    Python程序中的线程操作-concurrent模块
    python程序中的进程操作-进程间的数据共享
    有几个消费者就需要发送几次结束信号
    python进程池
    Python程序中的线程操作-concurrent模块
    Python程序中的线程操作-线程队列
    Python程序中的线程操作-守护线程
    进程操作-进程池
    进程池版socket并发聊天
    使用多进程请求多个url来减少网络等待浪费的时间
  • 原文地址:https://www.cnblogs.com/MarlonKang/p/13671881.html
Copyright © 2011-2022 走看看