Q侧耳听花开 发表于 2011-3-14 15:25:00

selenium测试B/S系统,可是此系统ID都是自动随机生成,怎么确定元素

selenium测试B/S系统,可是此系统ID都是自动随机生成,怎么确定元素

有共同研究的加QQ:379323216

robin.von 发表于 2011-3-14 15:37:10

如果父结点能确定的话,可以用父结点来定位。

如果class,style这些属性中包含唯一属性的话,也可以用来定位,

实在没有的话,就用序号来定位。

Q侧耳听花开 发表于 2011-3-17 14:51:42

父结点不能确定,id都是随机的,class倒是一组相同,style怎么定位,这三个能不能实例一下?

robin.von 发表于 2011-3-17 15:31:16

偶一个项目中弹出的DIV都是在最上层,其他属性都无法定位,就用了STYLE定位。
具体方法先找元素://div
然后把z-index枚举出来,值最大的那个就是最上层的。

另一个项目中,所有的属性都无法用来唯一定位,就是用的序号去定位的。
算法差不多是这样的,先定位到这个元素的能定位到的祖先结点,然后根据祖先结点加上需要定位的结点名字,再加上序号去枚举出所有的结点,然后再把枚举出的结点做成对象实例化。

比如某个祖先结点为 //div[@id='id1'],要定位的div是其某个子孙结点,所有这类子孙结点都有个CLASS为CLASS1,则我所需要的结点一定在//div[@id='id1']//div这个XPATH中,得到所有的结点数X,则所有结点可通过//div[@id='id1']//div......//div[@id='id1']//div中,一一枚举,然后实例化成对象就可以操作了。
页: [1]
查看完整版本: selenium测试B/S系统,可是此系统ID都是自动随机生成,怎么确定元素