51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 7075|回复: 7
打印 上一主题 下一主题

[WebDriver]关于cssSelector定位没有id和name的iframe里的元素。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-10-10 15:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟在使用webdriver的过程中遇到一个问题。在页面上点击“登录”按钮后,弹出一个iframe窗口,用户输入后可登录,但是该iframe既没有ID也没有name,所以想用cssSelector来定位。现在想定位到输入邮箱的输入框里,但是一直报Unable to locate element,估计cssSelector写的问题求帮助,代码如下。谢谢。


  1. <div class="blockUI blockMsg blockPage" style="z-index: 20001; position: fixed; padding: 0px; margin: -160px 0px 0px -246px; top: 50%; left: 50%; text-align: left; color: rgb(0, 0, 0); cursor: pointer; width: 493px; height: 320px;">
  2. <div style="width:493px; height:320px;">
  3. <div id="close" style="position: absolute; right:16px; height:16px; width:16px; top:19px;"></div>
  4. <iframe width="493px" scrolling="no" height="320px" frameborder="0" src="http://passport.xxx.com/get_pop?hash=&referer=http://bj.xxx.com/">
  5. <!DOCTYPE html>
  6. <html>
  7. <head>
  8. <body>
  9. <div class="login_box">
  10. <div class="login_box_con_back"></div>
  11. <div class="login_box_con">
  12. <div class="login_box_bottom">
  13. <div class="login_top">
  14. <a class="close" title="关闭"></a>
  15. <img src="/static/images/login_title.png">
  16. </div>
  17. <form autocomplete="off" action="/login2" method="post">
  18. <div class="login_txt">
  19. <div class="login_left">
  20. <div class="w_log_1">
  21. <div class="loginFormIpt-1 item-input">
  22. <input id="email" class="loginFormTdIpt" type="text" title="请输入邮箱" name="email" maxlength="50" value="">
  23. <label class="placeholder" style="" for="email">邮箱/手机号</label>
  24. <label class="txt_no" style="display:none" for="email">用户不存在,或者被删除</label>
  25. <label class="txt_no" style="display:none" for="email">对不起,此用户被屏蔽</label>
  26. </div>
  27. <div class="loginFormIpt-2 item-input">
  28. <input id="password" class="loginFormTdIpt" type="password" autocomplete="off" title="请输入密码" name="password">
  29. <label class="placeholder" style="" for="password">密码</label>
  30. <label class="txt_no" style="display:none" for="password">您输入的密码不正确</label>
  31. </div>
  32. </div>
  33. <div class="loginFormCheck">
  34. <div class="loginFormIpt">
  35. <button id="loginBtn" class="btn btn-login" tabindex="6" type="submit">登 录</button>
  36. <a href="/locate_password" target="_blank" title="找回密码">忘记密码?</a>
  37. </div>
  38. <div class="x-ts">
  39. <div class="l-tips" style="display:none">
  40. </div>
  41. </div>
  42. <div class="login_right">
  43. <h2>注册</h2>
  44. <div class="loginFormVer">
  45. <div class="login-ico-arr">
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2013-10-10 16:56:12 | 只看该作者
    你自己的测试代码呢?应该是你自己测试代码里的cssSelector的value搞错了吧。。。当然也可以试试用xpath去定位元素。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2013-10-10 17:08:19 | 只看该作者
    这太简单了,用By.tagName("iframe")不就行了。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2013-10-10 17:22:23 | 只看该作者
    回复 3# 六月天


    不行啊,页面上有好几个没有name和ID的iframe,有2个的时候还可以用dr.switchTo().frame(1),多个就不知道要选中的iframe的index了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2013-10-10 17:23:49 | 只看该作者
    回复 2# joykao


    xpath没问题,可以定位到。dr.switchTo().frame(dr.findElement(By.xpath("//iframe[contains(@src,'http://passport.xxx.com')]")));
    但是我想学学cssSelector怎么定位这个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2013-10-10 17:40:32 | 只看该作者
    有多个的话最简单就是xpath了。cssSelector不是所有元素都可以定位的,css选择器只有三种,标签选择器,类(class)选择器和id选择器,没有这几个就不推荐使用css选择器。
    但xpath是没有限制的。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.9]测试副司令

    7#
    发表于 2013-10-10 17:51:35 | 只看该作者
    回复 5# gac_51test

    这个主要看页面元素是怎么描述的。。。

    http://www.w3.org/TR/CSS/#selectors
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2013-10-21 21:33:53 | 只看该作者
    定位方式在原则上是哪个方便选哪个。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-4 08:49 , Processed in 0.071973 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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