• QTP中的DOM操作


    注:在QTP层面操作对象时,对象必须是可见的,在DOM层面的时没有要求但有时在DOM层面对元素执行操作时无效又需要在QTP层面才能操作

    通过vbs获取网页源码:

    Set XmlHttp1=CreateObject("MSxml2.XMLHTTP")
    XmlHttp1.Open "GET","http://www.baidu.com",false
    XmlHttp1.Send
    source=XmlHttp1.ResponseText
    msgbox source

    通过QTP的document对象获取网页源码:
    For each tlink in Browser("微博桌面").Object.document.getElementsByTagName("html")
        print tlink.outerhtml
    Next

    通过QTP的page对象获取网页源码:
    For each tlink in Window("微博桌面").Page("评论").Object.getElementsByTagName("html")
        print tlink.outerhtml
    Next

    获取并操作DOM对象:
    Set DomObj = Browser("微博桌面").Object.document
    DomObj.Method(args...)
    eg: DomObj.GetElementById(ID), DomObj.GetElementByName(Name), DomObj.GetElementByTagName(TagName)
    DomObj.Property
    eg: DomObj.body, DomObj.cookie, DomObj.url
    DomObj.Set          '''返回对象集合
    eg: DomObj.all, DomObj.links, DomObj.forms

    更多DOM支持的操作可以参考 http://www.w3school.com.cn/example/hdom_examples.asp

    QTP 帮助文档官方指定的地址:http://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/doc_object.asp

    转自: http://five3.blog.163.com/blog/static/4787186020117186106737/


    Page对象是页面的主体对象,用于包含各种Web控件,通过Page对象,可以访问下一层次的对象,例如页面的链接、图片等。
    下面的例子就是获取页面中还包含的链接和图片的个数

    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Link("REGISTER").Click

    '等待浏览器完成当前导航动作,用于模拟用户等到页面加载完成的过程
    browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Sync
    linksCount = browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Object.links.length

    print "链接总共有:" & linksCount

    ImagesCount = browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Object.images.length

    print "图片总共有:" & ImagesCount


    主要属性:
    1 alinkColor
    设置或获取元素中所有激活链接的颜色
    2 linkColor设置或获取对象文档链接的颜色。
    3 vlinkColor设置或获取用户已访问过的链接颜色。
    4 URL设置或获取当前文档的URL
    5 location:获取当前URL的信息。
    6 title设置或获取当前文档的标题。
    7 protocol设置或获取URL的协议部分。
    8 readyState获取表明对象当前状态的值。
    9 alinkColor设置或获取元素中所有激活链接的颜色。
    10 bgColor设置或获取表明对象后面的背景颜色的值。
    11 fgColor设置或获取文档的前景(文本)颜色。
    12 all返回对象所包含的元素集合的引用。
    13 anchors获取所有带有name/id属性的 a 对象的集合。此集合中的对象以 HTML 源顺序排列。
    14 applets获取文档中所有applet对象的集合。
    15 childNodes获取作为指定对象直接后代的HTML元素和 TextNode对象的集合。
    16 embeds获取文档中所有embed对象的集合。
    17 forms获取以源顺序排列的文档中所有form对象的集合。
    18 frames获取给定文档定义或与给定窗口关联的文档定义的所有window对象的集合。
    19 images获取以源顺序排列的文档中所有img对象的集合。
    20 links获取文档中所有指定了HREF属性的 a 对象和所有 area对象的集合。
    21 namespaces获取namespace对象的集合。
    22 scripts获取文档中所有script对象的集合。

    23 styleSheets获取代表与文档中每个link style 对象的实例相对应的样式表的 styleSheet 对象的集合

    1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。

    有些人错误的使用()去取该集合元素,下表列出各浏览器对childNodes(i)的支持情况:

      IE6/7/8/Safari/Chrome/Opera IE9/Firefox
    childNodes(i) 支持 不支持

    有时候需要获取指定元素的第一个HTML子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个HTML节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。

    1
    2
    3
    4
    5
    6
    functiongetFirst(elem){
        for(vari=0,e;e=elem.childNodes[i++];){
            if(e.nodeType==1)
                returne;
        }      
    }

    2,children 属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes 一样,在Firefox下不支持()取集合元素。因此如果想获取指定元素的第一个HTML节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。

  • 相关阅读:
    文件操作3
    文件操作2
    kubernetes快速应用入门
    kubeadm初始化kubernetes集群
    kubernetes基础概念
    变量
    字面值
    关键字
    标识符
    Ubuntu安装MySql5.7
  • 原文地址:https://www.cnblogs.com/zhangfei/p/2643836.html
Copyright © 2020-2023  润新知