51Testing软件测试论坛

标题: 请教请教,selenium这种情况如何定位啊????? [打印本页]

作者: xlyconan    时间: 2013-12-12 08:49
标题: 请教请教,selenium这种情况如何定位啊?????
[attach]88379[/attach]

图中所框选地址为系统登录地址,登陆后地址不变,这时想点击System这个模块名,这个页面中System模块元素如下图所示,点击完值周,上面的地址还是不变的,试了点击System模块名ide是捕捉不到的,这种情况怎么处理啊???
作者: joykao    时间: 2013-12-12 10:24
你在登陆完成后检查这个元素的属性就是你截图中截出来的?System是个link
用driver.findElement(By.linkText("System")).click()不行?
或者用driver.findElement(By.cssSelector("a[href*='javascriptn_menu']")).click()
都试试。。。
作者: xlyconan    时间: 2013-12-12 11:33
回复 2# joykao


    不行啊,system看上去是个link,点击后是下方是显示system中的相关信息的, driver.findElement(By.linkText("System")).click() 会报错定位不到这个元素

   另外:driver.findElement(By.cssSelector("a[href*='javascriptn_menu']")).click()这个也不行,
   菜单栏中所有模块名形式都是和system是相同的,所以这种方式也定位不上,如图

  [attach]88381[/attach]

    不过还是谢谢呦!

    继续   求解求解!!!!
作者: joykao    时间: 2013-12-12 12:57
回复 3# xlyconan


   我开始不知道你那个元素还有好几个类似元素。。你试着用cssSelector把href的值完全匹配下呢。。因为上午用的是模糊匹配这样会找到很多元素。。你用完全匹配试下。。。或者用xpath去定位。。
作者: xlyconan    时间: 2013-12-12 13:31
回复 4# joykao

    还是不行,xpath用的是  driver.findElement(By.xpath("/html/body/div[2]/u1/li[10]/a")).click();  报错还是定位不到

    systemMain.do 这个能这么直接定位吗?不用调用什么函数来解析一下吗?
作者: 六月天    时间: 2013-12-12 13:34
大概看了一下你的第一张图,我不知道你有没有注意一下,你所看到的那个页面是划分了几个frame的,每个frame都是一个独立的页面,对IDE来说,这是无法录制的,你必须手写selectFrame来操作。
还是那句话,玩自动化工具要知道原理。你也发现了,登录前和登录后页面地址都不变的,怎么实现的?不是异步刷新(ajax)就是分层(frame或iframe),不管是哪一种,对自动化都会有影响,搞清楚才会知道怎么弄。
作者: 六月天    时间: 2013-12-12 13:37
另外,IDE是给初学者玩玩的,自己做自动化测试的话,这种垃圾工具不用也罢,直接上手webDriver吧,webDriver中处理这种frame的问题,也是先要switchTo,然后再去findElement,否则一样找不到。
作者: joykao    时间: 2013-12-12 14:34
回复 5# xlyconan


你的xpath值哪取的啊?Firefox下找的?报啥错误啊?是unable to locate element 吗 ?你xpath值取得不对吧,
哎。。。要是公网么。。。可以帮忙调试下。。。不知道你的具体操作,也不知道你们网站的设计是什么样。。。单纯抛出问题来。。。很难根据描述解决问题啊。。。很难交流。。。
作者: xlyconan    时间: 2013-12-12 15:08
回复 7# 六月天


    嗯,我也是直接用webdriven写的,还需要多学习啊,现在是步步艰难。。。。
作者: xlyconan    时间: 2013-12-12 15:11
本帖最后由 xlyconan 于 2013-12-12 15:13 编辑

回复 8# joykao

firefox有个firepath,我就按照那个写的。报的错误是Unable to locate element

html如图
[attach]88388[/attach]


报错如图
[attach]88387[/attach]
作者: joykao    时间: 2013-12-12 15:29
回复 10# xlyconan


    别按那个写。。。参考下这个里面介绍的方法http://www.51testing.com/index.p ... space-itemid-848638

还有你这个页面是多frame的么?如果是的话需要switchto的。。你可以先试试上面介绍的取xpath的方法
作者: foxmessire    时间: 2013-12-17 15:42
回复  六月天


    嗯,我也是直接用webdriven写的,还需要多学习啊,现在是步步艰难。。。。
xlyconan 发表于 2013-12-12 15:08


新手是这样的。定个元素非半天劲还搞不定。真桑心
作者: xlyconan    时间: 2013-12-25 11:13
本帖最后由 xlyconan 于 2013-12-25 11:30 编辑

真的是需要switchTo的,问题解决啦

    要先switchto到那个元素所在的frame中,之后定位就好啦

    上个图,给有相同问题的朋友们做个参考吧O(∩_∩)O~

    [attach]88698[/attach]

    PS:谢谢各位的帮助,圣诞开心呦~
作者: liyanone2006    时间: 2014-4-2 11:45
学习了




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