51Testing软件测试论坛

标题: selenium webdriver 切换表单问题 [打印本页]

作者: Sarahhao8    时间: 2019-7-31 09:48
标题: selenium webdriver 切换表单问题
脚本如下:

# 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???求大神指点
作者: applepen    时间: 2019-7-31 10:13
切换iframe写法上没问题
确保x-URS-iframe是frame的id名
在确认一下页面是否有多重frame嵌套
作者: Sarahhao8    时间: 2019-7-31 10:42
检查了一下,是frame的id名,id名后面还有一串随机数字没写。
没有多重frame嵌套,只是在这个frame外面还有一个frame,没关系吧?id不同。
作者: Sarahhao8    时间: 2019-7-31 10:54
applepen 发表于 2019-7-31 10:13
切换iframe写法上没问题
确保x-URS-iframe是frame的id名
在确认一下页面是否有多重frame嵌套

你要不要把这段脚本copy过去在你那边运行一下试试?
作者: applepen    时间: 2019-7-31 11:32
Sarahhao8 发表于 2019-7-31 10:54
你要不要把这段脚本copy过去在你那边运行一下试试?

iframe = driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")
driver.switch_to.frame(iframe)
你试试这个
作者: Sarahhao8    时间: 2019-7-31 14:25
applepen 发表于 2019-7-31 11:32
iframe = driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")
driver.switch_to. ...

也不行
作者: applepen    时间: 2019-7-31 15:38
Sarahhao8 发表于 2019-7-31 14:25
也不行

我回头试试
作者: qqq911    时间: 2019-8-1 10:28
试试其他的frame能不能定位到
作者: 海海豚    时间: 2019-8-1 10:58
或者用Xpath定下位
作者: jingzizx    时间: 2019-8-1 12:51
frame定位的不对?
作者: Sarahhao8    时间: 2019-8-1 15:29
qqq911 发表于 2019-8-1 10:28
试试其他的frame能不能定位到

也不行
作者: abcsell    时间: 2019-8-1 16:34
调试一下
作者: abcsell    时间: 2019-8-1 16:35
调试一下




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