天天看點

QTP dom學習

在使用QTP測試WEB頁面時,經常需要利用測試對象中的Object屬性來通路和操作DOM,是以,QTP自動化測試工程師非常有必要掌握一些常用的DOM知識。

   QTP支援直接通路DOM(Document Object Model),可以通過DOM來通路HTML标簽。在QTP中,通路DOM是通過使用Page測試對象的Object屬性來進一步通路的。

 下面就列舉了一些常用的DOM屬性、方法和集合:

  常用DOM 屬性

  ● className.同一樣式規則的元素用相同的類名。可以通過className快速過濾出一組類似的元素。

  ● document.用于指向包含目前元素的文檔對象。

  ● id.目前元素的辨別。如果文檔中包含多個相同id的元素,則傳回一個數組。

  ● innerHTML.用于指向目前元素的開始标記和結束标記之間的所有文本和HTML标簽。

  ● innerText.用于指向目前元素的開始标記和結束标記之間的所有文本和HTML标簽。

  ● offsetHeight, offsetWidth.元素的高度和寬度。

  ● offsetLeft, offsetTop.目前元素相同對于父親元素的左邊位置和頂部位置。

  ● outerHTML.目前元素的開始标記和結束标記之間的所有文本和HTML标簽。

  ● outerText.目前元素的開始标記和結束标記之間的所有文本,但不包括HTML标簽。

  ● parentElement.目前元素的父親元素。

  ● sourceIndex.元素在document.all集合中的索引(index)。

  ● style.元素的樣式表單屬性。

  ● tagName.目前元素的标簽名。

  ● title.在IE中,代表元素的tool tip文本。

  常用DOM 方法

  ● click().模拟使用者對目前元素的滑鼠點選。

  ● contains(element).用于判斷目前元素是否包含指定的元素。

  ● getAttribute(attributeName, caseSensitive).傳回目前元素所包含的某個屬性,參數attributeName為屬性名、caseSensitive表示是否大小寫敏感。

  ● setAttribute(attributeName, value, caseSenstive). 設定目前元素的屬性。

  常用DOM 集合

  ● All[].目前元素中包含的所有HTML元素的數組。

  ● children[].目前元素包含的子元素。

例如下面的腳本擷取到我們網站的所有A标簽的InnerText

msgbox Browser("使用者登入_獵聘獵頭網:LieTou.com").Page("使用者登入_獵聘獵頭網:LieTou.com").Exist(1)

Set Doc=Browser("使用者登入_獵聘獵頭網:LieTou.com").Page("使用者登入_獵聘獵頭網:LieTou.com").Object

For Each Element In Doc.getElementsByTagName("A")

       TagName = Element.TagName ' 擷取标簽名 

        InnerText = Element.innerText ' 擷取inner text

   If  Trim(InnerText)="删除該段項目經曆" Then

           Reporter.ReportEvent 0, TagName, InnerText

   End If

Next

如果不知道自己要找的對象屬于哪個類型的Tag我們可以使用:

msgbox Browser("使用者登入_獵聘獵頭網:LieTou.com").Page("使用者登入_獵聘獵頭網:LieTou.com").Exist(1)

Set Doc=Browser("使用者登入_獵聘獵頭網:LieTou.com").Page("使用者登入_獵聘獵頭網:LieTou.com").Object

For Each Element In Doc.all

       TagName = Element.TagName ' 擷取标簽名 

        InnerText = Element.innerText ' 擷取inner text

        Reporter.ReportEvent 0, TagName, InnerText

   'If  Trim(InnerText)="删除該段項目經曆" Then           

   'End If

Next

擷取某個元素的個數:

Set Doc=Browser("使用者登入_獵聘獵頭網:LieTou.com").Page("基本資訊_個人資料_會員中心_獵聘獵頭網:LieTou.co").WebElement("2012.03-至今平台自動化測試 修改").Object

Dim i

i=0

For Each Element In Doc.getElementsByTagName("A")

       TagName = Element.TagName ' 擷取标簽名 

        InnerText = Element.innerText ' 擷取inner text

        Reporter.ReportEvent 0, TagName, InnerText

  If  Trim(InnerText)="删除該段項目經曆" Then           

  i=i+1

  End If

Next