51Testing软件测试论坛

标题: selenium webdriver定位元素xpath定位不到 [打印本页]

作者: Sarahhao8    时间: 2019-7-26 16:32
标题: selenium webdriver定位元素xpath定位不到
各种定位方法都试了,都点不开这个菜单,求大神指点!


作者: Sarahhao8    时间: 2019-7-26 16:37
这是具体的位置


作者: Sarahhao8    时间: 2019-7-26 17:56
前端的同事说要点击a ,a我试了也不行
作者: applepen    时间: 2019-7-29 09:04
再下层点击span标签试试
作者: Sarahhao8    时间: 2019-7-29 09:37
applepen 发表于 2019-7-29 09:04
再下层点击span标签试试

span也试了,不行
作者: applepen    时间: 2019-7-29 10:13
Sarahhao8 发表于 2019-7-29 09:37
span也试了,不行

会不会是页面跳转,加载比较慢导致的呢?
作者: Sarahhao8    时间: 2019-7-29 11:09
applepen 发表于 2019-7-29 10:13
会不会是页面跳转,加载比较慢导致的呢?

嗯,加了等待时间就好了。不过前两个菜单可以打开,后面三个菜单还是打不开,我看这几个菜单是一样的,为什么会有这种问题?
作者: Sarahhao8    时间: 2019-7-29 11:37
路径都是一样的

作者: applepen    时间: 2019-7-29 14:10
Sarahhao8 发表于 2019-7-29 11:37
路径都是一样的

如果要区分不同页面下相同控件的定位。
1.在xpath/id/name 确定当前页面的唯一性。
伪代码xpath(//div[name='login']/...../a[3]/li)
2.或者通过想要点击的按钮名称来定位
xpath(//div/...../a[3]/li/span[test()='公司车辆管理']);(这么写就能保证唯一性)
作者: Sarahhao8    时间: 2019-7-29 14:36
我上面说错了,路径不是一样的,区别:a[1],a[2],a[3], a[4],a[5], 前两个可以打开,后三个打不开。 按你刚才的方法,加上了文本也不行。

作者: 算命师    时间: 2019-7-29 16:21
句柄
Set<String> w = 变量.getWindowHandles();//获取当前页面的所有句柄,当前有两个页面
//所以用了一个字符串集合起来接收两个句柄
for(String handle:w){//随机在句柄集合中,选择一个句柄
        变量.switchTo().window(handle);
        String title = 变量.getTitle();
        System.out.println(title);
        //通过标题判断,所获取的页面是否是我想要的
        //如果是我想要的,则对该页面进行操作
        if("标题".equals(title)){
                变量.findElement(By.id("user")).sendKeys("卧槽");
        }
作者: Sarahhao8    时间: 2019-7-29 18:01
算命师 发表于 2019-7-29 16:21
句柄
Set w = 变量.getWindowHandles();//获取当前页面的所有句柄,当前有两个页面
//所以用了一个字符串 ...

我关掉了所有浏览器,只运行打开了这一个页面,仍然不行,是不是可以排除掉这个方法了?
作者: Sarahhao8    时间: 2019-7-30 17:26
用xpath还有定位不到的吗?
作者: FLYERFONE    时间: 2019-7-31 01:43
//span[contains(@class,'iconcheliangguanli')]/../..

其他的目录也可以这么写啊,只要看那个icon的class是什么,还有span在a下面的第几层,有时候层级可能不一样
作者: Sarahhao8    时间: 2019-7-31 10:12
a>li>span
前两个菜单定位的是li,可以打开。
后三个菜单的位置结构和前两个一样,怎么都打不开。
作者: nuandongx    时间: 2019-8-7 14:41
a标签建议用find_element_by_link_text试试,大致是这个方法,中间拼写有误的话不要见怪
作者: majingtian    时间: 2019-10-5 20:30
这是绝对路径 你可以试试相对路径




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