29 HTML(定位標簽的屬性)


HTML知識

目錄

一、什么是HTML?

二、為什么用HTML?

三、HTML基礎語法

 

正文

前情:

F12下百度網頁:

 標簽<> </>

一個標簽,由標簽名跟屬性構成

標簽里面的標簽:子標簽、下屬標簽

    header:表示<html></html>這個標簽的主體信息/摘要信息

    body:請求的內容,頁面的原信息,頁面上面的所有信息都是在body里面

 

一、什么是HTML?

 1.超文本標記語言----------------不是編程語言,只能靜態的標記(編程語言能自動化動態處理數據)

 2.HTML的標簽構成(標簽=元素)

     標簽名

     屬性、ID、name、class、href、src

     text文本(<a>哈哈哈哈哈</a>    標簽中的“哈哈哈哈哈”就是text文本,有些標簽中間沒有文本,就是空文本)

3.標簽的作用:所有HTML的標簽的所有構成部分都可以用來定位元素(查找)

4.HTML跟json的對比

<a>哈哈哈哈哈</a>    -------->轉化成json格式,為:{"a":"哈哈哈哈哈"}

在html的<a></a>標簽中還可以添加屬性、樣式,而json格式的只能存數據

所以html包含的內容/信息會更加豐富

 

二、為什么用HTML?

因為進行元素定位的依據,就是使用HTML

 

三、HTML基礎語法

1.pycharm中新建一個.html的文件,會自動寫好的一段html文本(body是空的),將title修改為python-selenium autotest.

如下圖示:頁面(body)為空,標題為修改后的python-selenium autotest.

 

 2.body中的內容

①注釋,<!-----注釋----->,快捷鍵ctrl+/

②標題<h></h>

一級標題<h1></h1>
二級標題<h2></h2>
三級標題<h6></h6>

align屬性,表示對齊方式,
顯示左對齊align="left"、右對齊align="right"、居中align="center",
顏色屬性style="color:#..."
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>python-selenium autotest</title>
</head>
<body>
    <h1 align="center" style="color:#00FF00">selenium之html練習</h1>
    <h2>這里是二級標題</h2>
    <h6>這里是三級標題</h6>

</body>
</html>

③  P標簽 ( 段落 paragraph)

   <p>
        hello world,
        hello python,
        hello java.
    </p>

頁面顯示的是一句話,並沒有換行顯示成段落!----這個是html的特性,不能控制頁面的排版,需要跟 換行標簽組合使用

1)<br>換行-------一般不適用這種方法

  <p>
        hello world,<br>
        hello python,<br>
        hello java.<br>
    </p>

2)一個段落寫一個p標簽

<p>hello world</p>
<p>hello python</p>
<p>hello java</p>

 

結果如上顯示,段落之間有空行*(一個p標簽是一個段落,所以有空行)。

不想要空行,怎么辦?下面3)

3)<div> ♥♥-----常使用div進行頁面排版、優化(html常見的)

 是一個塊級元素。這意味着它的內容自動地開始一個新行。實際上,換行是 <div> 固有的唯一格式表現。

<div> 可定義文檔中的分區或節(division/section)。

<div> 標簽可以把文檔分割為獨立的、不同的部分,可以在div中加屬性、內容,更加容易擴展,排版的優化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>python-selenium autotest</title>
</head>
<body>
    <h1 align="center" style="color:#00FF00">selenium之html練習</h1>
    <h2>這里是二級標題</h2>
    <h6>這里是三級標題</h6>
<!--<br>格式的換行-->
    <p>
        hello world,<br>
        hello python,<br>
        hello java.<br>
    </p>
<!--p標簽-->
    <p>hello world</p>
    <p>hello python</p>
    <p>hello java</p>
<!--div區塊-->
    <div style="color:#0FFF00">hello world</div>
    <div style="color:#0FF0F0">hello python</div>
    <div style="color:#0000F0">hello java</div>

</body>
</html>

結果:

 

4)<hr> 水平線

直接<hr>,沒有任何美化操作的

 

5)列表

(1)有序列表 orderedlist

語法<ol>

    <li>哈哈哈</li>

    <li>哇哇</li>

  </ol>

(2)無序列表unorderedlist----------<ul></ul>

語法<ul>

    <li>哈哈哈</li>

    <li>哇哇</li>

  </ul>

(3)列表嵌套

語法<ul>

    <li>聲音

      <ul>

        <li>哈哈哈</li>

        <li>哇哇</li>

      </ul>

    </li>

  </ul>

 

代碼實現:

<!--水平線-->
    <hr>
<!--有序列表-->
    <ol>
        <li>彭於晏</li>
        <li>胡歌</li>
        <li>鹿晗</li>
    </ol>
<!--無序列表-->
    <ul>
        <li>彭於晏</li>
        <li>胡歌</li>
        <li>鹿晗</li>
    </ul>
<!--嵌套列表-->
    <ul>
        <li>最喜歡的
            <ul>
                <li>彭於晏</li>
                <li>胡歌</li>
                <li>鹿晗</li>
            </ul>
        </li>
    </ul>

結果:

 

 6)表格 table

語法:表頭:th

   行:tr

   列:td

 

 代碼實現:

<!--表格-->
<!--border=1,加邊框,不加就沒有邊框    -->
    <table border="1">   
        <tr>
            <th>姓名</th>
            <th>年齡</th>
            <th>職業</th>
        </tr>
        <tr>
            <td>彭於晏</td>
            <td>18</td>
            <td>明星</td>
        </tr>
         <tr>
            <td>胡歌</td>
            <td>18</td>
            <td>明星</td>
        </tr>
    </table>

結果:

 

 

7)超鏈接 <a></a>

a標簽需要和href屬性綁定使用,才是超鏈接。直接寫a標簽沒有href,就是一個文本而已。

在web自動化測試中,對a標簽的定位:①可以通過href屬性定位。②通過text文本進行定位(沒有href的情況下)

<!--超鏈接-->
<!--放在div里面,換行-->
    <div>
      <a href="http://www.baidu.com">進入百度</a>
    </div>

結果:點擊【進入百度】,即可跳轉到百度首頁

 

 

8)圖片 image -----單個標簽,不是標簽對

①img標簽要跟src屬性組合使用,src存放圖片地址,可以是在線地址,也可以是本地地址

   src是用於原地址(href是用於超鏈接)

   設置圖片大小可以width、heigth

②點擊圖片,可以進入另一個頁面:將img放到a標簽里面,就會有a標簽的特性(添加href)

♥♥定位img: 使用src定位 

     經常和a標簽組合使用,如果img沒有明顯的特質,可以用a標簽進行定位。

 注意:不是所有的img都放在a標簽中的。   

代碼實現:

   <!--圖片-->
    <a href="http://www.baidu.com">
       <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593939076033&di=947eeb758985a83dffad1f02e7b76980&imgtype=0&src=http%3A%2F%2Fimage11.m1905.cn%2Fuploadfile%2F2013%2F0507%2F20130507045955829.jpg"
     width="200px" height="220px">
    </a>

結果:點擊圖片進入百度

 

9)iframe

♥♥:定位iframe:用src屬性

在一個iframe中可以嵌套另外一個html頁面(一個網頁中存在另外一個網頁),結構如下:

<!--iframe-->
    <iframe>
        <html></head>
        <head>
            <body></body>
        </html>
    </iframe>

提問:什么要嵌套網頁?定位子網頁的元素的時候,要指定。

代碼實現:

    <iframe src="http://www.baidu.com" width="300px" height="320px">
    </iframe>

結果:加載了子頁面,百度

 

10) input  只有一個標簽,不是標簽對--------------使用頻率很高的是:用戶輸入、密碼輸入password、選擇上傳文件file

♥♥♥input標簽,定位使用name屬性!!!!!!

①input基礎

input框前面有提示:label標簽

input框內有隱形提示,輸入數據后,提示消失,用placeholder

定位密碼加鎖,使用type="password"即可

代碼實現:

<!--用戶輸入-->
    <label>請輸入用戶名1</label><input><br>
<!--影藏提示    -->
    <input type="password" placeholder="請輸入密碼">

結果如下:輸入的密碼被隱藏

 

 

 

 

 ②input屬性( password密碼、checkbox多選、radio單選、submit提交按鈕、file上傳的文件、date獲取日期、time獲取時間、color顏色盤、button按鈕、email只能輸入email格式的、、、、、)

radio --單選

<!--單選radio-->
    <div>最喜歡的
        <input type="radio">彭於晏
        <input type="radio">胡歌
        <input type="radio">鹿晗
    </div>

直接按照上面的代碼執行,是可以多選的,還必須加上一個name屬性,表示在這個name 范圍內是單選的。

如下彭於晏、胡歌、鹿晗是在同一個“最喜歡的男明星”這個范圍內,是只能單選。

       王菲、劉亦菲是在同一個“最喜歡的女明星”的范圍,這兩個人只能單選

       “最喜歡的男明星” 跟 “最喜歡的女明星” 是不同的范圍,這兩個可以並存。

<!--單選radio-->
    <div>最喜歡的
        <input type="radio" name="最喜歡的男明星">彭於晏
        <input type="radio" name="最喜歡的男明星">胡歌
        <input type="radio" name="最喜歡的男明星">鹿晗
        <input type="radio" name="最喜歡的女明星">王菲
        <input type="radio" name="最喜歡的女明星">劉亦菲
    </div>

結果如下:男明星、女明星可以共存(男、女都只能選一個)

 

checkbox---多選

<!--多選checkbox,也要使用name屬性-->
    <div>一般喜歡的
        <input type="checkbox" name="一般喜歡的男明星">張三
        <input type="checkbox" name="一般喜歡的男明星">李四
        <input type="checkbox" name="一般喜歡的男明星">王二
    </div>

結果:

 

 

date、color、file、time、button、email

<!--date、color、file、time、button、email-->
    <div>時間
        <input type="date" >
        <input type="color" >
        <input type="file">
        <input type="time">
        <input type="button">
        <input type="email">
    </div>

結果:

 

11)  select下拉框選擇器------跟option組合使用

select標簽的元素定位:option

<!--selection下拉框選擇器-->
    <select>
        <option>選擇1</option>
        <option>選擇2</option>
        <option>選擇3</option>
    </select>

結果:

 

12)form表單

form表單提交的數據,是以form表單的形式向后端傳輸。上面的所有內容,都是可以放在form中;表單是需要提交的,使用submit,如下面:

點擊[提交],數據傳遞到后端服務上;后端服務通過request.form,獲取form表單的數據,處理后就可以進行登錄等。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>python-selenium autotest</title>
</head>

<body>
    <form>
    <h1 align="center" style="color:#00FF00">selenium之html練習</h1>
    <h2>這里是二級標題</h2>
    <h6>這里是三級標題</h6>

    <div style="color:#0FFF00">hello world</div>
    <div style="color:#0FF0F0">hello python</div>
    <div style="color:#0000F0">hello java</div>
<!--水平線-->
    <hr>
<!--有序列表-->
    <ol>
        <li>彭於晏</li>
        <li>胡歌</li>
        <li>鹿晗</li>
    </ol>
<!--無序列表-->
    <ul>
        <li>彭於晏</li>
        <li>胡歌</li>
        <li>鹿晗</li>
    </ul>
<!--嵌套列表-->
    <ul>
        <li>最喜歡的
            <ul>
                <li>彭於晏</li>
                <li>胡歌</li>
                <li>鹿晗</li>
            </ul>
        </li>
    </ul>
<!--表格-->
<!--border=1,加邊框,不加就沒有邊框    -->
    <table border="1">
        <tr>
            <th>姓名</th>
            <th>年齡</th>
            <th>職業</th>
        </tr>
        <tr>
            <td>彭於晏</td>
            <td>18</td>
            <td>明星</td>
        </tr>
         <tr>
            <td>胡歌</td>
            <td>18</td>
            <td>明星</td>
        </tr>
    </table>
<!--超鏈接-->
<!--放在div里面,換行-->
    <div>
      <a href="http://www.baidu.com">進入百度</a>
    </div>
<!--圖片-->
    <a href="http://www.baidu.com">
       <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593939076033&di=947eeb758985a83dffad1f02e7b76980&imgtype=0&src=http%3A%2F%2Fimage11.m1905.cn%2Fuploadfile%2F2013%2F0507%2F20130507045955829.jpg"
     width="200px" height="220px">
    </a>

    <iframe src="http://www.baidu.com" width="300px" height="320px">
    </iframe><br>
<!--用戶輸入-->
    <label>請輸入用戶名1</label><input><br>
<!--影藏提示    -->
    <input type="password" placeholder="請輸入密碼">
<!--單選radio-->
    <div>最喜歡的
        <input type="radio" name="最喜歡的男明星">彭於晏
        <input type="radio" name="最喜歡的男明星">胡歌
        <input type="radio" name="最喜歡的男明星">鹿晗
        <input type="radio" name="最喜歡的女明星">王菲
        <input type="radio" name="最喜歡的女明星">劉亦菲
    </div>
<!--多選checkbox,也要使用name屬性-->
    <div>一般喜歡的
        <input type="checkbox" name="一般喜歡的男明星">張三
        <input type="checkbox" name="一般喜歡的男明星">李四
        <input type="checkbox" name="一般喜歡的男明星">王二
    </div>

<!--date、color、file、time、button、email-->
    <div>時間
        <input type="date" >
        <input type="color" >
        <input type="file">
        <input type="time">
        <input type="button">
        <input type="email">
    </div><br>
<!--selection下拉框選擇器-->
    <select>
        <option>選擇1</option>
        <option>選擇2</option>
        <option>選擇3</option>
    </select>
    <input type="submit">    
    </form>
</body>
</html>

結果:

 

 

在form表單中添加后端服務器地址,使用action,請求方法:get,post。。。。,點擊【提交】,會將form表單中的數據傳輸后端,后端處理后返回結果,顯示在頁面上:

<form action="http://httpbin.org/post" method="post">
。。
。。
</form>

結果:點擊提交,得到form表單傳輸的數據,按照name屬性提取內容,沒有name屬性,就沒有數據。

 

 只要是用戶輸入的數據,都要加上name屬性,提交后就可以提取到輸入的數據了。------只要input標簽,99%都會有name屬性。

為什么要name屬性?

通過input的輸入框往后端傳輸數據時,只有通過name屬性,后端才知道傳了什么數據。

還需要注意:傳入過去的數據,是不會拿到標簽外面的數據的(標簽外面的數據是顯示在UI上的,能夠看到的,並不能進行數據傳遞),所以下面這樣的,就獲取不到數據。

<div>一般喜歡的
        <input type="checkbox" name="一般喜歡的男明星">張三
        <input type="checkbox" name="一般喜歡的男明星">李四
        <input type="checkbox" name="一般喜歡的男明星">王二
    </div>

怎么辦?

在標簽里加上value屬性---用戶輸入input的數據,都是通過value屬性去傳遞數據。----傳輸的數據是放在value屬性里面

<div>喜歡的
        <input type="checkbox" name="star_male" value="張三">張三
        <input type="checkbox" name="star_male" value="lisi">李四
        <input type="checkbox" name="star_male" value="wanger">王二
    </div>

結果:

總結:輸入,name屬性提取數據,value屬性傳遞數據。input標簽外的數據無法傳遞。radio、checkbox等都是通過value值進行傳遞。

 在web自動化測試中,可以通過修改value值,改變輸入的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM