请教请教,selenium这种情况如何定位啊?????
图中所框选地址为系统登录地址,登陆后地址不变,这时想点击System这个模块名,这个页面中System模块元素如下图所示,点击完值周,上面的地址还是不变的,试了点击System模块名ide是捕捉不到的,这种情况怎么处理啊??? 你在登陆完成后检查这个元素的属性就是你截图中截出来的?System是个link
用driver.findElement(By.linkText("System")).click()不行?
或者用driver.findElement(By.cssSelector("a")).click()
都试试。。。 回复 2# joykao
不行啊,system看上去是个link,点击后是下方是显示system中的相关信息的, driver.findElement(By.linkText("System")).click() 会报错定位不到这个元素
另外:driver.findElement(By.cssSelector("a")).click()这个也不行,
菜单栏中所有模块名形式都是和system是相同的,所以这种方式也定位不上,如图
不过还是谢谢呦!
继续 求解求解!!!! 回复 3# xlyconan
我开始不知道你那个元素还有好几个类似元素。。你试着用cssSelector把href的值完全匹配下呢。。因为上午用的是模糊匹配这样会找到很多元素。。你用完全匹配试下。。。或者用xpath去定位。。 回复 4# joykao
还是不行,xpath用的是driver.findElement(By.xpath("/html/body/div/u1/li/a")).click();报错还是定位不到
systemMain.do 这个能这么直接定位吗?不用调用什么函数来解析一下吗? 大概看了一下你的第一张图,我不知道你有没有注意一下,你所看到的那个页面是划分了几个frame的,每个frame都是一个独立的页面,对IDE来说,这是无法录制的,你必须手写selectFrame来操作。
还是那句话,玩自动化工具要知道原理。你也发现了,登录前和登录后页面地址都不变的,怎么实现的?不是异步刷新(ajax)就是分层(frame或iframe),不管是哪一种,对自动化都会有影响,搞清楚才会知道怎么弄。 另外,IDE是给初学者玩玩的,自己做自动化测试的话,这种垃圾工具不用也罢,直接上手webDriver吧,webDriver中处理这种frame的问题,也是先要switchTo,然后再去findElement,否则一样找不到。 回复 5# xlyconan
你的xpath值哪取的啊?Firefox下找的?报啥错误啊?是unable to locate element 吗 ?你xpath值取得不对吧,
哎。。。要是公网么。。。可以帮忙调试下。。。不知道你的具体操作,也不知道你们网站的设计是什么样。。。单纯抛出问题来。。。很难根据描述解决问题啊。。。很难交流。。。 回复 7# 六月天
嗯,我也是直接用webdriven写的,还需要多学习啊,现在是步步艰难。。。。:dizzy: 本帖最后由 xlyconan 于 2013-12-12 15:13 编辑
回复 8# joykao
firefox有个firepath,我就按照那个写的。报的错误是Unable to locate element
html如图
报错如图
回复 10# xlyconan
别按那个写。。。参考下这个里面介绍的方法http://www.51testing.com/index.php?uid-349605-action-viewspace-itemid-848638
还有你这个页面是多frame的么?如果是的话需要switchto的。。你可以先试试上面介绍的取xpath的方法 回复六月天
嗯,我也是直接用webdriven写的,还需要多学习啊,现在是步步艰难。。。。
xlyconan 发表于 2013-12-12 15:08 http://bbs.51testing.com/images/common/back.gif
新手是这样的。定个元素非半天劲还搞不定。真桑心 本帖最后由 xlyconan 于 2013-12-25 11:30 编辑
真的是需要switchTo的,问题解决啦
要先switchto到那个元素所在的frame中,之后定位就好啦
上个图,给有相同问题的朋友们做个参考吧O(∩_∩)O~
PS:谢谢各位的帮助,圣诞开心呦~ 学习了
页:
[1]