Python实现Web UI自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins
上QQ阅读APP看书,第一时间看更新

4.1 HTML基础知识

超文本标记语言(Hyper Text Markup Language,HTML)是一种用于创建网页的标准标记语言。HTML运行在浏览器上,通过浏览器来解析。

4.1.1 创建HTML文件

我们可以通过PyCharm来创建HTML文件,步骤如图4-1所示。

图4-1 创建HTML文件

这里,我们创建了一个名为“html4_1.html”的文件,PyCharm会自动创建HTML的框架内容。

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

简单分析一下。

●HTML文件的扩展名是“.html”或者“.htm”。

●<!DOCTYPE html>声明该文件为HTML5文件。

●<html>元素是HTML页面的根元素。

●<head>元素包含了文件的元数据(metadata),如<meta charset="UTF-8">定义网页编码格式为UTF-8。

●<title>元素描述了文件的标题。

●<body>元素包含了可见的页面内容。

再来看一下HTML的标签概念。

●HTML标记标签通常被称为HTML标签(HTML tag)。

●HTML标签是由尖括号括起来的关键字,如<html>。

●HTML标签通常是成对出现的,如<b>和</b>。

●标签对中的第一个标签是开始标签,第二个标签是结束标签。

●开始标签和结束标签也分别被称为开放标签和闭合标签。

<标签>内容</标签>

4.1.2 HTML元素

HTML文件由各种元素构成,接下来,我们认识一些常见元素。

(1)HTML标题

HTML标题(heading)是通过<h1>~<h6>标签来定义的,示例代码如下。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>这是一个h1标题</h1>
    <h2>这是一个h2标题</h2>
    <h3>这是一个h3标题</h3>
</body>
</html>

当鼠标指针在PyCharm中的HTML代码输入区移动的时候,该区域右上角会出现浏览器的图标,单击某个浏览器图标即可选择对应的浏览器解析当前的HTML文件,这里我们单击Chrome浏览器图标,如图4-2所示。

图4-2 选择浏览器

通过Chrome浏览器查看该HTML文件,效果如图4-3所示。

图4-3 查看HTML文件(1)

(2)HTML段落、链接、图像

●HTML段落是通过标签<p>来定义的。

●HTML链接是通过标签<a>来定义的。

●HTML图像是通过标签<img>来定义的。

创建一个HTML文件,包含上述3个标签,如下所示。

<body>
<p>这是一个段落。</p>
<a href="https://www.ptpress.com.cn/">链接到人民邮电出版社官网</a>
<p>这是另外一个段落。</p>
<img src="https://www.ptpress.com.cn/static/portal/img/logo.png" width="258" height="39" />
</body>

通过浏览器查看该HTML文件,效果如图4-4所示。

图4-4 查看HTML文件(2)

4.1.3 HTML元素属性

上一小节,我们认识了HTML文件中的标题、段落、链接、图像共4个简单元素,而元素本身还有一些属性,我们来认识一下。

属性是HTML元素提供的附加信息,HTML元素的属性有以下特征。

●HTML元素可以设置属性。

●属性可以在元素中添加附加信息。

●属性一般描述于开始标签。

●属性总是以“名称/值”对的形式出现,如name="value"。

●属性值应该始终在引号内,双引号最常用。

表4-1所示为一些较为常用的HTML元素的属性。

表4-1 HTML元素的属性

4.1.4 复杂元素

本小节我们再来看几个稍微复杂一些的HTML元素。

(1)表格

表格由<table>标签来定义。每个表格均有若干行(由<tr>标签定义),每行被分割为若干单元格(由<td>标签定义)。td指表格数据(table data),即数据单元格的内容。表格的表头由<th>标签定义,大多数浏览器会把表头显示为粗体居中的文本。

示例HTML文件如下。

<body>
<table border="1">
     <tr>
          <th>Header 1</th>
          <th>Header 2</th>
     </tr>
     <tr>
          <td>row 1, cell 1</td>
          <td>row 1, cell 2</td>
     </tr>
     <tr>
          <td>row 2, cell 1</td>
          <td>row 2, cell 2</td>
     </tr>
</table>
</body>

效果如图4-5所示。

这是一个带表头的表格。除去表头外,还有两行数据,每行有两个单元格。

(2)列表

HTML支持有序、无序和自定义列表,我们来分别演示一下。

◆有序列表

有序列表是一列项目,列表项目使用数字进行标记。有序列表始于<ol>标签,每个列表项目始于<li>标签。

<body>
<ol>
<li>风暴之灵</li>
<li>大地之灵</li>
<li>灰烬之灵</li>
</ol>
</body>

效果如图4-6所示。

图4-5 查看表格显示效果

图4-6 有序列表

◆无序列表

再来看一下无序列表,无序列表同样是一个包含项目的列表,此列表项目使用粗体圆点(典型的小黑圆点)进行标记,无序列表始于<ul>标签。

<body>
<ul>
<li>风暴之灵</li>
<li>大地之灵</li>
<li>灰烬之灵</li>
</ul>
</body>

效果如图4-7所示。

◆自定义列表

最后,来看一下自定义列表。自定义列表不是一列项目,而是项目及其注释的组合。自定义列表以<dl>标签开始,每个自定义列表项目以<dt>标签开始,每个自定义列表项目的定义以<dd>标签开始。

示例HTML文件如下。

<body>
<dl>
<dt>风暴之灵</dt>
<dd>-蓝色的猫猫</dd>
<dt>大地之灵</dt>
<dd>-土色的猫猫</dd>
</dl>
</body>

效果如图4-8所示。

图4-7 无序列表

图4-8 自定义列表

列表标签的简单总结如表4-2所示。

表4-2 列表标签

(3)表单

HTML表单用于收集不同类型的用户输入,表单是一个包含表单元素的区域。表单元素是允许用户在表单中输入的内容,例如文本域(textarea)、下拉列表、单选按钮(radio-button)、复选框(checkbox)等。表单使用表单标签<form>来设置。

多数情况下被用到的表单标签是输入标签(<input>),输入类型是由类型属性(type)定义的,常用的输入类型如下。

◆文本域

文本域通过<input type="text">标签来定义,当用户需要在表单中输入字母、数字等内容时,就会用到文本域。

<body>
<form>
姓名: <input type="text" name="firstname"><br>
密码: <input type="text" name="lastname">
</form>
</body>

效果如图4-9所示。

◆密码字段

密码字段通过标签<input type="password">来定义。

示例HTML文件如下。

<body>
<form>
用户名: <input type="text" name="pwd">
<br>
密码: <input type="password" name="pwd">
</form>
</body>

输入内容后的效果如图4-10所示。

图4-9 文本域

图4-10 密码字段

注意▶ 大家可以看到,当type为text时,输入的内容明文显示;当type为password时,输入的内容密文显示。

◆单选按钮

<input type="radio">标签用于定义表单单选按钮。

示例HTML文件如下。

<body>
<form>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female
</form>
</body>

效果如图4-11所示。

◆复选框

<input type="checkbox">用于定义复选框,用户需要从若干给定的选项中选取一个或若干选项。

示例HTML文件如下。

<body>
<form>
多选题:
<br>
<input type="checkbox" name="hero" value="storm">风暴之灵
<br>
<input type="checkbox" name="hero" value="sk">沙王
</form>
</body>

效果如图4-12所示。

图4-11 单选按钮

图4-12 复选框

(4)框架

使用框架(主要是iframe)可以在同一个浏览器窗口中显示多个页面。

iframe的语法如下。

<iframe src="URL"></iframe>

height和width属性用来定义<iframe>标签的高度与宽度。属性默认以像素为单位,但是用户可以指定其按比例显示,如"80%"。

示例HTML文件如下。

<body>
<iframe src="https://www.ptpress.com.cn/" width="500" height="600"></iframe>
<iframe src="https://www.ptpress.com.cn/" width="500" height="600"></iframe>
</body>

效果如图4-13所示(一个窗口中嵌套了两个人民邮电出版社的官网页面)。

注意▶ 框架除了iframe以外,还有frameset和frame,但后面两种在HTML5中已不再被支持,我们的项目中应用最多的还是iframe,因此本小节不再赘述。

最后,我们再来总结一下什么是HTML。

●HTML是用来描述网页的一种语言。

图4-13 iframe

●HTML指的是超文本标记语言,英文全称为Hyper Text Markup Language。

●HTML不是一种编程语言,而是一种标记语言。

●标记语言是一套标记标签(markup tag)。

●HTML使用标记标签来描述网页。

●HTML文档包含了HTML标签及文本内容。

●HTML文档也称为Web页面。