51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10171|回复: 23
打印 上一主题 下一主题

Selenium中xpath的问题

[复制链接]
  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    跳转到指定楼层
    1#
    发表于 2013-11-26 22:58:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本人新手 学习selenium中关于xpath有些不明白
    ByXpath.xpath()和By.xpath()的区别是什么
    ByXpath.xpath() 我个人理解是里面是表达式
    By.xpath() 我个人认为是绝对路径

    然后我使用中遇见一些问题
    xpath是 /x:html/x:body/x:div[4]/x:div[1]/x:dl[5]/x:dt[1]/x:a
    我用这个方法可以定位到元素driver.findElement(By.xpath("/html/body/div[4]/div[1]/dl[5]/dt[1]/a"))
    xpath 是id('formTab')/x:li[2]/x:a 我用下面的方法也可以找到元素
    driver.findElement(ByXPath.xpath("//*[@id='formTab']/li[2]/a"))
    但是当xpath是id('tousu_form2')/x:table/x:tbody/x:tr[1]/x:td/x:label[1]/x:input 时我用类似的方法缺找不到了 不知道为什么 我觉得和上面都一样呀
    driver.findElement(ByXPath.xpath("//*[@id='tousu_form2']/table/tbody/tr[1]/td/lable[1]/input")); 定位不到了  图片是我想定位提交问题的radio

    哈问题有点长 希望大家耐心看完 多帮助一下 先谢谢了呀
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    2#
     楼主| 发表于 2013-11-27 09:14:43 | 只看该作者
    额  图片为什么没显示呀 回家我在重添加以下吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    3#
    发表于 2013-11-27 10:30:48 | 只看该作者
    By.xpath() 我个人认为是绝对路径  这句话不对。。。一般直接就用By.xpath()。。。。ByXpath.xpath()没用过,也没啥意思。。。用xpath最好不要用绝对路径,还是用相对路径的好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    4#
     楼主| 发表于 2013-11-27 11:09:51 | 只看该作者
    回复 3# joykao
    哦 那请问一下 我的xpath 是
    id('tousu_form2')/x:table/x:tbody/x:tr[1]/x:td/x:label[1]/x:input  这是用火狐xpath取的

    我用
    driver.findElement(ByXPath.xpath("//*[@id='tousu_form2']/table/tbody/tr[1]/td/lable[1]/input")); 为什么定位不到呢 是有什么问题吗 ,或者要是能帮我写一个就更好了哈 ,不知道为什么图片传不上来 等回家我在传吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    5#
    发表于 2013-11-27 14:46:22 | 只看该作者
    回复 4# chuodl


    用firefox 下的xpath抓取的值经常会出问题,个人比较喜欢用chrome下的PsychoXpath 选择Element(short)来抓取xpath。。。但是说实话能不用xpath就不用。。。方便上一下元素的html代码截图么?看可不可以用其他方法代替xpath
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    6#
     楼主| 发表于 2013-11-27 20:23:44 | 只看该作者
    回复 5# joykao

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    7#
     楼主| 发表于 2013-11-27 20:25:01 | 只看该作者
    回复 5# joykao


        回复图片了 好像要等管理员审核 看看吧 要是看不见 我再重传一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    8#
    发表于 2013-11-28 10:24:38 | 只看该作者
    回复 6# chuodl


        可以看到了。。这个元素不要用xpath找。。。用cssSelector吧

    By.cssSelector(input[value='提交问题'])。。。这个更靠谱。。。当然你也可以用name去找。。。不过name名字是type。。估计不是唯一属性。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2013-11-28 18:09:04 | 只看该作者
    最近怎么这么多xpath问题。。。。。这个东西很简单。
    图上的这个元素我看了一下,用By.xpath("//input[@value='提交问题']")不就行了?我刚才试了一下,完全没问题啊。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-5 15:56
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]测试营长

    10#
     楼主| 发表于 2013-11-28 21:36:04 | 只看该作者
    谢谢 二位 哈 问题解决了 尤其@joykao 上次我的问题也是你帮着解答的 十分感谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2013-12-5 15:58:13 | 只看该作者
    本帖最后由 Cris@Kaka 于 2013-12-5 16:38 编辑

    点击这个新建,又要怎么写呢?我试过   
         driver.findElement(By.xpath("//td[@id='ToolBarContainer']/div[1]/a[1]")).click();
        //driver.findElement(By.xpath("/html/body/table/tbody/tr[3]/td/div/a")).click();
        //driver.findElement(By.linkText("新建")).click();

        //driver.findElement(By.xpath("//a[@title='新建']")).click();
       这四个都不行。。但是IDE上都可以。

    回复 8# joykao

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2013-12-6 09:34:39 | 只看该作者
    回复 9# 六月天


        请看楼上我的,我想一定是我们公司项目Firefox支持得不好的原因。。T_T
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    13#
    发表于 2013-12-6 13:06:02 | 只看该作者
    回复 11# Cris@Kaka


      这么写

    driver.findElement(By.cssSelector("a[title='新建']")).click();
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2013-12-12 14:37:04 | 只看该作者
    回复 13# joykao


        我想说这样也是不行的。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    15#
    发表于 2013-12-12 15:12:01 | 只看该作者
    回复 14# Cris@Kaka


      不是。可以确认一下你的步骤么?
    1.点击了LJC
    2.点击我的工作日程
    然后右边自动跳到我的工作日程?貌似右边有起始页和我的工作日程2个tab嘛。。。是不是默认的是起始页么?那个右边我的工作日程可以点击么?你这个应该用的是frame吧?多个frame之间切换是需要switchto的。。就和不用的页面切换类似。。。你仔细看下到底在那个frame下。。然后先switchto那个frame再去点击那个新建按钮。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2013-12-13 13:51:59 | 只看该作者
    回复 15# joykao


        点击LJC之前我就有switchto左边的frame,然后完了之后我又switchto中间的frame了。。还是不行。。至于两个tab。很有可能真的定位到起始页去了。。那要怎么切换到我的工作日程这个tab啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    17#
    发表于 2013-12-13 14:36:01 | 只看该作者
    回复 16# Cris@Kaka

    。。。。其实我觉得吧。。多frame也不一定会有问题,问几个很愚蠢的问题哈:

    1.当你进入到截图页面时,该页面的默认状态是怎样的?左边所有的树形结构都是关闭没展开的?还是有默认展开的部分?
    2.当你点击LJC时URL在变化么?这时候右边是默认显示起始页的?
    3.当你点击我的工作日程时URL 又有变化么?这时默认显示的我的工作日程?
    4.上述步骤中页面的title有没有变化?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2013-12-13 16:19:24 | 只看该作者
    回复 17# joykao


        首先这几个问题不愚蠢呀,应该都很关键吧  嘿嘿
    1.进入页面树形结构都是关闭的,需要点击去打开
    2.URL一直没有变化, 系统登录进去就有显示起始页了,然后点击到我的日程管理业务才会跳到相应的新增加tab页面
    3. URL 没变    这是就是显示我的工作日程了
    4.页面的title一直没变
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2013-12-17 14:20:24 | 只看该作者
    回复 18# Cris@Kaka


    我这边也出现这种问题,不知道要怎么定位按钮。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2013-12-18 09:28:39 | 只看该作者
    回复 19# foxmessire


        解决了相互通知声。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 05:45 , Processed in 0.080306 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表