Ryzelan 2011-04-19
QTP支持直接访问DOM(DocumentObjectModel),可以通过DOM来访问HTML标签。在QTP中,访问DOM是通过使用Page测试对象的Object属性来进一步访问的。我们这里用Object.getElementById的用法,从DOM的对象中取得;
例如:
Browser("name:=百度一下,你就知道").Page("title:=百度一下,你就知道").Object.getElementByID("kw").value="helloworld"'在百度输入框输入值
Browser("name:=百度一下,你就知道").Page("title:=百度一下,你就知道").Object.getElementByID("sb").Click'点击百度进行搜索
其中kwsb都是包含在outerhtml中的
常用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中,代表元素的tooltip文本。
常用DOM方法
●click().模拟用户对当前元素的鼠标点击。
●contains(element).用于判断当前元素是否包含指定的元素。
●getAttribute(attributeName,caseSensitive).返回当前元素所包含的某个属性,参数attributeName为属性名、caseSensitive表示是否大小写敏感。
●setAttribute(attributeName,value,caseSenstive).设置当前元素的属性。
常用DOM集合
●All[].当前元素中包含的所有HTML元素的数组。
●children[].当前元素包含的子元素。
getElementById(id)(document)
获取有指定惟一ID属性值文档中的元素
getElementsByTagName(name)
返回当前元素中有指定标记名的子元素的数组
hasChildNodes()
返回一个布尔值,指示元素是否有子元素
getAttribute(name)
返回元素的属性值,属性由name指定
Vue和React是数据驱动视图,如何有效控制DOM操作?能不能把计算,更多的转移为js计算?因为js执行速度很快。patch函数-->patch,对比tag,对比tag与key,对比children