【问题标题】:Not able access elements inside frames in IE, but works fine in Chrome and FireFox无法在 IE 中访问框架内的元素,但在 Chrome 和 FireFox 中可以正常工作
【发布时间】:2013-12-16 15:54:18
【问题描述】:

我正在使用 Selenium webdriver 来自动化一个有很多框架的 web 应用程序。

当我在 IE 中运行我的脚本时,框架内的元素没有被识别,并且我得到一个异常“Unable to find element with link text == testing”。但这在 Chrome 和 Firefox 中完美运行。

我经历了许多相关的讨论,并尝试了以下解决方法,但它们没有帮助。

  • 在切换帧前后插入了等待语句。
  • 禁用 IE 的代理设置。 修改了 IE 设置以显示安全和非安全内容
  • 选中 Internet 选项 -> 高级 -> IE 设置中的安全性下的“允许活动内容在我的计算机上的文件中运行”复选框。

我用过,

Selenium 网络驱动程序版本 2.35.0.0 IE版本:7 编程语言:c#

注意:

  • 应用程序具有动态的帧名称和 ID,因此我使用索引来切换帧。

我尝试将在 chrome 和 IE 中打开的应用程序保存为 html 页面。当我使用浏览器打开保存的 html 页面时,

  • 从 chrome 保存的那个显示了框架内的所有元素。

  • 从 IE 中保存的不显示框架内的任何元素。

如果我能找到处理框架内元素的解决方案,那就太好了。

无法提供完整的html代码,但附上部分html代码的截图。

我尝试使用 Chrome 和 IE 保存完整的 html 页面。而且我确实观察到了它们的不同。

这是从 chrome 保存的 html 代码的快照。在这里,我确实看到了 "" 部门,它有框架。

这是从 IE 保存的 html 代码的快照。在这里,我没有看到“" 部门,也没有看到“”。

我怀疑这是否是问题的原因。如果我必须提供更多信息,请告诉我。

【问题讨论】:

  • 感谢您的回复。我正在使用索引来定位框架并链接文本来定位框架内的元素。我能够成功切换到框架而没有任何错误消息,但是当我尝试在“SwitchTo()”语句之后单击框架内的元素时出现错误。我已经添加了 html 代码的快照。

标签: c# internet-explorer selenium frame


【解决方案1】:

实际的问题是,由于某种原因,使用 Index 识别帧在 IE 中无法正常工作。这似乎是与应用程序在 IE 浏览器中的行为有关的问题。因此,我们提出了以下解决方案来解决这个问题。

步骤: 1. 获取页面中的所有框架(使用其类)作为列表。 2. 遍历列表以获取数组中每个帧的名称。 3.然后使用数组中保存的帧名切换到对应的帧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-29
    • 2014-04-21
    • 2015-01-20
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多