51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !双11剁手不吃土,来投稿赚回血红包! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 570|回复: 12

[求助] selenium webdriver 切换表单问题

[复制链接]
  • TA的每日心情
    郁闷
    2019-7-29 16:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2019-7-31 09:48:59 | 显示全部楼层 |阅读模式
    脚本如下:

    # coding=utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Firefox()
    driver.get("http://mail.163.com")
    driver.implicitly_wait(30)

    # 切换iframe
    driver.switch_to_frame("x-URS-iframe")
    driver.find_element_by_name("email").send_keys("123")
    driver.find_element_by_name("password").send_keys("456")


    报错如下:
    C:\Python27\python.exe D:/test0729/iframe.py
    Traceback (most recent call last):
      File "D:/test0729/iframe.py", line 9, in <module>
        driver.switch_to_frame("x-URS-iframe")
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 574, in switch_to_frame
        self._switch_to.frame(frame_reference)
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\switch_to.py", line 68, in frame
        self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
        self.error_handler.check_response(response)
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.NoSuchFrameException: Message: Unable to locate frame: x-URS-iframe
    Stacktrace:
        at FirefoxDriver.prototype.switchToFrame (file:///c:/users/admini~1/appdata/local/temp/tmpdehs06/extensions/fxdriver@googlecode.com/components/driver-component.js:10840)
        at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/admini~1/appdata/local/temp/tmpdehs06/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)
        at fxdriver.Timer.prototype.setTimeout/<.notify (file:///c:/users/admini~1/appdata/local/temp/tmpdehs06/extensions/fxdriver@googlecode.com/components/command-processor.js:625)

    Process finished with exit code 1



    为什么定位不到iframe???求大神指点
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:20
  • 签到天数: 635 天

    连续签到: 3 天

    [LV.9]测试副司令

    发表于 2019-7-31 10:13:08 | 显示全部楼层
    切换iframe写法上没问题
    确保x-URS-iframe是frame的id名
    在确认一下页面是否有多重frame嵌套
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-7-29 16:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-7-31 10:42:54 | 显示全部楼层
    检查了一下,是frame的id名,id名后面还有一串随机数字没写。
    没有多重frame嵌套,只是在这个frame外面还有一个frame,没关系吧?id不同。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-7-29 16:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-7-31 10:54:03 | 显示全部楼层
    applepen 发表于 2019-7-31 10:13
    切换iframe写法上没问题
    确保x-URS-iframe是frame的id名
    在确认一下页面是否有多重frame嵌套

    你要不要把这段脚本copy过去在你那边运行一下试试?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:20
  • 签到天数: 635 天

    连续签到: 3 天

    [LV.9]测试副司令

    发表于 2019-7-31 11:32:57 | 显示全部楼层
    Sarahhao8 发表于 2019-7-31 10:54
    你要不要把这段脚本copy过去在你那边运行一下试试?

    iframe = driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")
    driver.switch_to.frame(iframe)
    你试试这个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-7-29 16:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-7-31 14:25:16 | 显示全部楼层
    applepen 发表于 2019-7-31 11:32
    iframe = driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")
    driver.switch_to. ...

    也不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:20
  • 签到天数: 635 天

    连续签到: 3 天

    [LV.9]测试副司令

    发表于 2019-7-31 15:38:51 | 显示全部楼层

    我回头试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 11:24
  • 签到天数: 418 天

    连续签到: 3 天

    [LV.9]测试副司令

    发表于 2019-8-1 10:28:12 | 显示全部楼层
    试试其他的frame能不能定位到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 09:28
  • 签到天数: 827 天

    连续签到: 3 天

    [LV.10]测试总司令

    发表于 2019-8-1 10:58:25 | 显示全部楼层
    或者用Xpath定下位
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 12:24
  • 签到天数: 1456 天

    连续签到: 3 天

    [LV.10]测试总司令

    发表于 2019-8-1 12:51:27 | 显示全部楼层
    frame定位的不对?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-7-29 16:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2019-8-1 15:29:17 | 显示全部楼层
    qqq911 发表于 2019-8-1 10:28
    试试其他的frame能不能定位到

    也不行
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2019-12-12 01:59 , Processed in 0.070806 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2019 Comsenz Inc.

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