【问题标题】:How to click on element in hidden iframe using Python Selenium如何使用 Python Selenium 单击隐藏 iframe 中的元素
【发布时间】:2016-11-12 14:58:27
【问题描述】:

所以我想在 iframe 标记中查找元素。但是,在 html 源代码中没有 iframe 标记。但是,如果我检查元素,则存在。如何在 Python 2.7 中使用 Selenium 库解决这个问题?

HTML 源代码

Screenshot

.

检查元素

Screenshot

感谢所有回复!

【问题讨论】:

  • 在使用该框架下的查找元素之前,您是否使用了 webdriver.switchTo().frame("card-field...")?
  • @Moshisho 我不能这样做,因为 selenium 使用 HTML 源代码而不是来自检查元素的代码。在源代码中甚至没有提到 iframe。我知道如何解决这个问题:(
  • 您是否使用 Selenium getPageSource() 获得了此源代码?您可以将代码添加到问题中吗?你有示例网址吗?

标签: javascript python selenium iframe selenium-webdriver


【解决方案1】:

如果它是动态生成的,它可以解释为什么在硒版本的 DOM 中找不到它。您仍然可以通过在代码中使用 javascript 来获取它。

driver.execute_script("return document.getElementsByClassName('card-fields-iframe')")

【讨论】:

  • 你说的动态生成,是指JavaScript的使用吗?就像在 DHTML en.wikipedia.org/wiki/Dynamic_HTML?wprov=sfsi1 中一样?或者也许我错过了什么......
  • 是的。通过预先编写的 javascript 或通过 AJAX 来自服务器的一些响应
  • 如果生成的 HTML 已经插入到页面中(而不是在内存中等待某些操作)(通常是这种情况),selenium 可以访问该元素,因为它始终具有最新的 DOM,即用户看到并有权访问(例如通过检查)。
猜你喜欢
  • 1970-01-01
  • 2013-07-01
  • 2021-05-12
  • 1970-01-01
  • 2014-04-02
  • 2020-05-24
  • 2020-01-29
  • 2015-10-05
  • 2020-10-14
相关资源
最近更新 更多