首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium:用于Chrome扩展的NoSuchFrameException

Selenium:用于Chrome扩展的NoSuchFrameException
EN

Stack Overflow用户
提问于 2017-08-27 17:52:23
回答 3查看 1.3K关注 0票数 1

我有一个Chrome扩展,我想用Selenium来测试它。该扩展将一个iframe标签放到页面上。

我可以通过运行以下命令成功获取iframe标签:

代码语言:javascript
运行
复制
top_frame = driver.find_element(By.XPATH, value='//iframe[@class="top-frame"]')

然而,当我尝试切换到帧时,我得到了'NoSuchFrameException‘错误。

代码语言:javascript
运行
复制
driver.switch_to.frame(top_frame)

下面的代码行正确地输出了框架的类名

代码语言:javascript
运行
复制
print(top_frame.get_attribute('class')) 

错误日志:

代码语言:javascript
运行
复制
Testing http://www.google.com

Traceback (most recent call last):
  File "test/run_tests.py", line 200, in <module>
    main()
  File "test/run_tests.py", line 197, in main
    run_tests(args.plugin, args.out, args.url)
  File "test/run_tests.py", line 167, in run_tests
    button = check_button(driver, url)
  File "test/run_tests.py", line 84, in check_button
    driver.switch_to.frame(top_frame)
  File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/switch_to.py", line 87, in frame
    self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
  File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchFrameException: Message: no such frame: element is not a frame
  (Session info: chrome=60.0.3112.90)
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.10.0-30-generic x86_64)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-30 03:06:01

在最新版本的Chrome中,很可能存在中断switch_to_frame()调用的错误。因此,我开始使用Firefox,现在一切都很顺利。

票数 0
EN

Stack Overflow用户

发布于 2017-08-28 10:04:14

试试看这个人

代码语言:javascript
运行
复制
driver.switch_to.frame(driver.find_element(By.XPATH,value=".//iframe[@src='give your frame source name here..']"));
票数 1
EN

Stack Overflow用户

发布于 2017-10-25 07:46:09

此链接指向与Chromium相关的问题报告。这个问题还没有解决。(25/10/17) https://bugs.chromium.org/p/chromedriver/issues/detail?id=2019

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45903714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档