網頁元素特徵字串
1.什麼是網頁元素特徵字串
要了解什麼是網頁元素特徵字串(以下簡稱特徵串)首先得了解什麼是網頁,什麼是html。從維基百科上可查詢到網頁定義如下:
網頁是乙個檔案,他存放在世界某個角落的的某一台計算機中,而這台計算機必須是與網際網路相連的。網頁經由**(
url
)來識別與訪問,當我們在瀏覽器輸入**後,經過一段複雜而又快速的程式,網頁檔案會被傳送到你的計算機,然後再通過瀏覽器解釋網頁的內容,再展示到你的眼前。是全球資訊網中的一「頁」,通常是
html
格式(擴充套件名為
.html
或.htm
)。網頁通常用影象檔來提供圖畫。網頁要透過網頁瀏覽器來閱讀。
網頁通常有以下元素:文字資料,影象檔案,
(在頁面內執行的副程式)超連結等。
網頁通常都是html格式的檔案,經瀏覽器解釋之後生成的頁面,我們要分析網頁,首先得了解html語言。再查維基百科,html定義如下:
超文字置標語言(英文:hypertext markup language,簡稱為html)是為「網頁建立和其它可在網頁瀏覽器中看到的資訊」設計的一種置標語言。html被用來結構化資訊——例如標題、段落和列表等等,也可用來在一定程度上描述文件的外觀和語義。由蒂姆·伯納斯-李給出原始定義,由ietf用簡化的sgml(標準通用置標語言)語法進行進一步發展的html,後來成為國際標準,由全球資訊網聯盟(w3c)維護。
html語言是一種標記語言,由成對的
< > … 包含起來的元素組成,各種不同的元素具備不同的標記名稱,有不同的屬性。例如說乙個鏈結的html**如下:
>虛擬518論壇
它的標籤名稱為是a,具備屬性 href,該屬性值為
。不同的網頁元素具備不同的標籤名稱,同時也具備不同的屬性名稱與值。html語言的所有標記請參考相關教程。我們需要面對的主要是表單。
在講解特徵串之前,先簡介一下表單,在網頁中有一種表單標記,在這些標記之間可以新增
等表單元素,這些元素可以為使用者提供輸入、選擇等功能,而表單中的內容也可以被提交到伺服器完成互動。
元素型別比較豐富,根據其type不同,具備的功能也不同,type=」text」為單行的文字輸入框,type=「password」為密碼輸入框,type=「radio」為單選框,type=「checkbox」為核取方塊,type=「button」為普通的按鈕,type=「reset」為表單復位按鈕,type=「submit」為提交表單按鈕;
標記為使用者提供下拉選擇框,
標記為使用者提供多行文字輸入。
網頁元素特徵字串是乙個用來描述網頁元素標籤特徵的字串,用於定位指定元素。
2.網頁元素特徵字串格式
特徵串格式如下:
屬性1:值1&屬性2:值2&屬性3:值3&屬性4:值4
特徵串由「&」鏈結,使用「:」分隔屬性名稱與屬性值;連線成乙個完成的特徵字串;
特稱串目前支援的屬性有:
序號屬性名稱
適用元素及簡要說明1id
所有元素
2index
所有元素
,此index為具備除開index特徵之外,其他相同特偵的元素集合中的index,一般在指定特徵時無法唯一定位元素時使用,從0開始計算
3name
具備name
屬性的表單元素
4type
具備type
屬性的表單元素
5value
具備value
屬性的表單元素
,一般用來匹配提交按鈕
value* value^ value$
支援使用萬用字元查詢value屬性:
value$ 表示以某字元結尾,例:value$:測試,匹配所有以「測試」結尾的元素
6txt
匹配元素的
innertext
,一般用來操作鏈結
;txt* txt^ txt$
同value系列操作,支援萬用字元
value* 表示包含特定字串
value^ 表示以特定字串開始
value特定字串結尾
7src
用於元素的匹配,匹配img 標籤的src屬性
src* src^ src$
同樣支援三種萬用字元;
src* 表示包含特定字串
src^ 表示以特定字串開始
src$ 表示以特定字串結尾
8href
用於匹配鏈結的
href
屬性href* href^ href$
同樣支援三種萬用字元
href* 表示包含特定字串
href^ 表示以特定字串開始
href$ 表示以特定字串結尾
9frame
如果頁面中包含
frame
,或者是
iframe
,都可以通過frame屬性來定位frame頁面中的元素。
frame編號從0開始
3.如何組合網頁元素特徵字串?
網頁上的元素作為整個網頁的組成部分之一,大部分都具備自己獨一無二的特徵,只要用特徵串描述出該特稱,就可以定位到該元素。在通常情況下,網頁分析器能夠自動給出網頁元素特徵串,但有很多特殊情況下,給出的特徵串不能正確定位元素,此時就需要使用者自行組合特徵串,可以使用網頁分析來測試。下面給出一些常用的組合方法以供參考:
1)在最新的xhtml規範中,每乙個網頁元素都可以有乙個id,這個id在整個網頁中都是唯一的,在很多網頁的表單中,表單元素都有id。如果對應的元素有id,那麼這個特徵串最為簡單,直接使用id:theid即可唯一定位到該元素。
2)早期的網頁中,表單元素沒有使用id,而是使用了name屬性,這個name一般來說也是唯一的,此時可以使用tag:input&name:thename來定位元素;
3)有一些比較bt的網頁表單既不用id,也不用name的,就只能依靠type與index來定位,例如定位表單中的第二個單行文字框:tag:input&type:text&index:1;定位第三個下拉框:tag:select&index:2;;
如果按鈕的文字的帶有空格,而且空格在兩端時,匹配經常失效,此時可以用萬用字元來匹配:例如google首頁上的「手氣不錯」按鈕,它的兩端都有乙個空格,而且使用的編碼的html符號來表示的,直接使用value無法獲得準確的匹配,此時就需要使用萬用字元:tag:input&value*:手氣不錯
6)frame頁面元素,有些網頁中會採用frame或者iframe,在這些frame子頁面中,不能直接控制,需要指定frame才能進行控制,這裡採用frame的索引來進行定位。可以使用網頁分析器來檢視具體的frame頁面的index。然後再在特徵字串上加上frame,例如點選按鍵精靈首頁上的知識庫鏈結,就需要採用以下格式:frame:0&tag:a&txt:知識庫。
4.特殊情況處理
在某些網頁中,可能會使用一些特殊的標記,例如
這個型別的input,只能使用index來定位,
例如tag:input&type:image&index:0
有的表單中使用了
。。。。>提交
這樣的按鈕來提交表單,可以使用
tag:button&txt:提交
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
字串陣列元素提取比較
需求 求出1 1000以內的所有數字中 數字9一共出現了多少次?只要9出現了就算一次 999就算出現了三次 思路1 土辦法 1,遍歷到1000 2,將遍歷到的數取出百位,十位,個位,並判斷是否為9,如果為9,則計數器加1 思路2 使用字串轉換的方法 1,遍歷1到1000 將得到的整數轉換成字串型別 ...
字串去掉重複元素
有下下面這樣一道題 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。比如字串 abacacde 過濾結果為 abcde 要求實現函式 void stringfilter const char pinputstr,long l...