51Testing软件测试论坛

标题: 如何抓取菜单中的元素? [打印本页]

作者: andyclock    时间: 2016-1-14 11:34
标题: 如何抓取菜单中的元素?
系统只能用chrome打开,chromeF12可以查看页面元素并获取xpath,但是菜单中的选项元素怎么抓取? 因为点一下工具栏中的一个选项菜单出现,再点下页面任何地方菜单消失,这样就没法抓到里面的元素,有没有好的解决方案?谢谢。
作者: joykao    时间: 2016-1-14 13:43
按下F12的时候找个那个你想显示的元素,把display属性改成block就可以了,这个只在运行时有效
作者: andyclock    时间: 2016-1-14 16:10
joykao 发表于 2016-1-14 13:43
按下F12的时候找个那个你想显示的元素,把display属性改成block就可以了,这个只在运行时有效

举个例子,bar中有个客户按钮,点击出来菜单,有查询,注册,增加等等选项,按出F12,用放大镜点击客户,然后点H隐藏,再去点击客户弹出菜单,然后用放大镜去点注册选项(如果不隐藏客户,点放大镜的时候菜单会消失),接着问题来了,点注册选项的时候,下面element会在一个label元素这里一闪而过跳到一个iframe应该就是装载这些菜单选项的,这个iframe只有src="javascript:void(0)" 属性,无id,因此依然无法找到注册选项的xpath,这种情况该怎么办?
作者: joykao    时间: 2016-1-15 10:12
andyclock 发表于 2016-1-14 16:10
举个例子,bar中有个客户按钮,点击出来菜单,有查询,注册,增加等等选项,按出F12,用放大镜点击客户, ...

你们还有iframe?你先自己把那个iframe跳出来呀,然后再去找id或者name什么的,你那个src只能说明那个地方有个js调用,打开一个iframe给你,还有如果用到iframe请switch先
作者: andyclock    时间: 2016-1-15 11:12
joykao 发表于 2016-1-15 10:12
你们还有iframe?你先自己把那个iframe跳出来呀,然后再去找id或者name什么的,你那个src只能说明那个地 ...

是的,该系统都是iframe,有些页面嵌套三层,现在这个问题解决了,一开始这个iframe上包个div,通过这个xpath可以直接回放点击其中的一个菜单选项(无需switch iframe),然后我在这个div上找了个并列的div,这个div中有4层div+2个table(隐藏很深),当中包着个tbody,里面才是具体菜单,每个菜单4个td,其中有个class是label-cell,获取xpath,一开始我以为可以直接通过这个xpath找(受之前那个菜单选项影响),试了多次不行,然后昨天下班前突然想到先切到iframe试试,那个iframe也需要用xpath,因为element里面没有id或者name属性,最后回放成功,搞了半天不容易。。




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