wugecat 发表于 2011-3-1 09:14:09

请教关于DOM的一个实现方法?

如何用dom来实现:只传入一个文字,遍历到页面上包含该文字的所有html对象?不用QTP自带的方法。

shingo0109 发表于 2011-3-1 14:09:00

本帖最后由 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:12

多谢~~!这就是我要的但是all这个集合似乎在firefox下不能用,我后来查了用document.getElementsByTagName('*')也行,还有一个问题就是innerText属性在firefox下不能用,在IE是可以的,firefox下可以用textContent属性,但是这个属性在IE下又有问题。。。。:L有什么方法可以实现两个浏览器通用吗?我是想用selenium,想写一些基础的方法可以支持IE和FF

shingo0109 发表于 2011-3-1 22:26:35

回复 3# wugecat


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

至于如何判断浏览器类型, 我还没试过, 要不LZ试试

shingo0109 发表于 2011-3-2 11:32:02

试了下, 貌似可以通过GetROProperty("application version")来判断浏览器类型

xiaoyaoke 发表于 2011-3-2 12:49:06

浏览器的类型获取方法有很多,我不明白的是,这个浏览器应该是你自己通过QTP启动的,这时候还需要判断吗?

shingo0109 发表于 2011-3-2 13:04:18

回复 6# xiaoyaoke


貌似LZ是想用selenium来实现浏览器通用, 我上面的GetROProperty应该不能用了, 那个是QTP里的方法, 用selenium工具怎么判断浏览器还没用过, 还望LZ自己试试了

xiaoyaoke 发表于 2011-3-2 13:53:21

用selenium也是在初始化的时候自己启动浏览器啊,这个时候是自己确定的启动的是IE还是Firefox之类的,只在不行就selenium里面去get http header中的User-Agent了,而且记得在浏览器里面应该也是有方法获取浏览器类型的,通过JS貌似可以获取

办法很多的,自己想想

shingo0109 发表于 2011-3-2 14:06:44

回复 8# xiaoyaoke


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

至于怎么取浏览器, 还请LZ自己试试了:D

wugecat 发表于 2011-3-2 14:08:35

呵呵~可以这样判断!
if(document.all){
alert("IE")
}else
{
alert("FF")
}
页: [1]
查看完整版本: 请教关于DOM的一个实现方法?