51Testing软件测试论坛

标题: 请教关于DOM的一个实现方法? [打印本页]

作者: wugecat    时间: 2011-3-1 09:14
标题: 请教关于DOM的一个实现方法?
如何用dom来实现:只传入一个文字,遍历到页面上包含该文字的所有html对象?不用QTP自带的方法。
作者: shingo0109    时间: 2011-3-1 14:09
本帖最后由 shingo0109 于 2011-3-1 14:11 编辑

根据百度首页简单写了个,不知是否符合LZ要求, 多提意见~~
inputstring="百"
Set Doc = Browser("CreationTime:=0").Page(":=").Object
For Each Element In Doc.all
    InnerText = Element.innerText
    If Instr(1, InnerText, inputstring) >0 Then
       Print "innertext=" &InnerText & vbcrlf
    End If
Next
作者: wugecat    时间: 2011-3-1 17:39
多谢~~!这就是我要的但是all这个集合似乎在firefox下不能用,我后来查了用document.getElementsByTagName('*')也行,还有一个问题就是innerText属性在firefox下不能用,在IE是可以的,firefox下可以用textContent属性,但是这个属性在IE下又有问题。。。。有什么方法可以实现两个浏览器通用吗?我是想用selenium,想写一些基础的方法可以支持IE和FF
作者: shingo0109    时间: 2011-3-1 22:26
回复 3# wugecat


可不可以通过判断浏览器的类型来添加if else条件, 如果浏览器是IE, 那就使用innertext属性, 如果是firefox,那就使用textcontent

至于如何判断浏览器类型, 我还没试过, 要不LZ试试
作者: shingo0109    时间: 2011-3-2 11:32
试了下, 貌似可以通过GetROProperty("application version")来判断浏览器类型
作者: xiaoyaoke    时间: 2011-3-2 12:49
浏览器的类型获取方法有很多,我不明白的是,这个浏览器应该是你自己通过QTP启动的,这时候还需要判断吗?
作者: shingo0109    时间: 2011-3-2 13:04
回复 6# xiaoyaoke


貌似LZ是想用selenium来实现浏览器通用, 我上面的GetROProperty应该不能用了, 那个是QTP里的方法, 用selenium工具怎么判断浏览器还没用过, 还望LZ自己试试了
作者: xiaoyaoke    时间: 2011-3-2 13:53
用selenium也是在初始化的时候自己启动浏览器啊,这个时候是自己确定的启动的是IE还是Firefox之类的,只在不行就selenium里面去get http header中的User-Agent了,而且记得在浏览器里面应该也是有方法获取浏览器类型的,通过JS貌似可以获取

办法很多的,自己想想
作者: shingo0109    时间: 2011-3-2 14:06
回复 8# xiaoyaoke


恩, 是自己启动浏览器的啊, 但自己有时会启动IE, 有时会启动firefox, 如果代码里不加判断, 只写一种的话, 到时启动另外一个浏览器时, 属性不就无法识别了么。

至于怎么取浏览器, 还请LZ自己试试了
作者: wugecat    时间: 2011-3-2 14:08
呵呵~可以这样判断!
if(document.all){
alert("IE")
}else
{
alert("FF")
}




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2