51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2643|回复: 3
打印 上一主题 下一主题

求助:selenium2.0 中xpath的使用

[复制链接]
  • TA的每日心情
    开心
    2014-10-16 12:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2012-9-21 16:14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>夫妇夫妇凤飞飞发</title>
    </head>
    <body>
    <div class="top">
         <iframe id = topLoginiframe>
           <html>
                  <head>
                         .................
                   </head>
                   <body>
                            <form id = login>
                                     <input id = account>
                                       <input id = password>
                   </body
    >

    <div class="middle">
    </div>
    </body>
    </html>

    类似在一个html脚本中:
    WebDriver driver = new InternetExplorerDriver ();
    diver.findElement(By.xpath("//iframe[@id='topLoginiframe']//input[@id=login]"));
    提示我找不到路径,为什么呢?是selenium2.0 不能找到嵌套在html中的内容吗?
    selenium 1.0 是可以找到的
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2012-12-27 09:33:32 | 只看该作者
    要先selectFrame,然后再用xpath.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2012-12-27 11:03:36 | 只看该作者
    楼上那个说错了。
    首先,既然要找的元素在iframe里面,不管selenium 1还是2都是找不到的。必须在定位之前做frame的切换。
    之所以说楼上的说错了,是因为楼上用的方法是selenium 1的方法,而楼主问的是WebDriver的方法。
    Webdriver中切换frame的方法是使用switchTo。按照楼主的例子,在:
    diver.findElement(By.xpath("//iframe[@id='topLoginiframe']//input[@id=login]"));
    之前插一句切换frame:
    driver.switchTo().frame(driver.findElement(By.id("topLoginiframe")));
    然后把原来的改成:
    diver.findElement(By.id("login"));
    这样100%能找到。
    如果要跳回原来的外层frame,那就用:
    driver.switchTo().defaultContent();
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-2-5 17:30:32 | 只看该作者
    3楼的回答很正确 六月天技术不错啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 19:42 , Processed in 0.061915 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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