冰雪女王 发表于 2016-8-25 15:02:45

求助,selenium定位树总是定位不了菜单,一直报错

求大神们帮助,这个错在哪里,我想实现点击“教务管理”展开子菜单效果
<li class="L1"><a href="javascript:void(0)" onclick="c(am1)" id="am1"><span>教务管理</span></a></li><ul id="am1d" style="display: none;" class="U1"><li class="L21"><a href="/CurrKeChengZongBiao/Index" target="mainfrm" id="m11"><span>课程总表</span></a></li><li class="L21"><a href="/XueShengKaoQing/Index" target="mainfrm" id="m12"><span>学生考勤管理</span></a></li><li class="L21"><a href="/XueShengDaKa/Index" target="mainfrm" id="m13"><span>学生打卡管理</span></a></li><li class="L21"><a href="/StudentRecord/Index" target="mainfrm" id="m14"><span>学生档案管理</span></a></li><li class="L21"><a href="/TeacherRecord/Index" target="mainfrm" id="m15"><span>老师档案管理</span></a></li>




        //driver.findElement(By.id("am1"));
                driver.findElement(By.xpath("//*a[@id='am1']"));用了这两个方法都不行

若尘_51 发表于 2016-8-25 15:20:42

一般都是下面的情况,试试下面:
(1)driver.findElement(By.xpath("//*a[@id='am1']/span"))
(2)是不是有框架ifame?
(3)元素是不是在当前的句柄里?

冰雪女王 发表于 2016-8-25 15:26:02

是的,页面运用到了iframe框架,有iframe的话要如何定位??求解

若尘_51 发表于 2016-8-25 15:39:33

冰雪女王 发表于 2016-8-25 15:26
是的,页面运用到了iframe框架,有iframe的话要如何定位??求解

#切换框架
switch_to_frame("ifame的id值")
#然后再定位操作框架下的元素,如
driver.xxx.click()

冰雪女王 发表于 2016-8-25 16:37:25

冰雪女王 发表于 2016-8-25 15:26
是的,页面运用到了iframe框架,有iframe的话要如何定位??求解

整个页面是有上下两部分组成,下边一部分又分为左右,我现在想实现点击左侧的树,然后去点击转到对应的页面

冰雪女王 发表于 2016-8-25 16:47:36

若尘_51 发表于 2016-8-25 15:39
#切换框架
switch_to_frame("ifame的id值")
#然后再定位操作框架下的元素,如


这样的和其他单纯一个连接的方法有什么差别吗

冰雪女王 发表于 2016-8-25 16:47:53

若尘_51 发表于 2016-8-25 15:39
#切换框架
switch_to_frame("ifame的id值")
#然后再定位操作框架下的元素,如


这样的和其他单纯一个连接的方法有什么差别吗

若尘_51 发表于 2016-8-26 08:30:13

冰雪女王 发表于 2016-8-25 16:37
整个页面是有上下两部分组成,下边一部分又分为左右,我现在想实现点击左侧的树,然后去点击转到对应的页 ...

把相关页面的HTML截图看看。

若尘_51 发表于 2016-8-26 08:33:14

冰雪女王 发表于 2016-8-25 16:47
这样的和其他单纯一个连接的方法有什么差别吗

这是selenium的机制,如果有ifame框架的话,必须先进入框架内,才能定位操作到框架内的元素。
建议去看看:Selenium的iframe定位以及窗口的定位。

掉渣饼 发表于 2016-8-26 09:15:30

如果定位的元素上面有iframe
可以尝试以下几种方法
#如果iframe有id属性,可以用
driver.switch_to_frame("id的值")
#如果iframe没有id属性,看你要定位的iframe在页面中是第几个iframe,如果是第一个
driver.switch_to_frame(0)
如果是第二个
driver.switch_to_frame(1)后面依次类推
如果后面你要定位的元素不在当前的iframe下面,则需要跳出当前的iframe
driver.switch_to_default_content()
页: [1]
查看完整版本: 求助,selenium定位树总是定位不了菜单,一直报错