【问题标题】:Selenium problem accessing elements within framesSelenium 访问帧内元素的问题
【发布时间】:2013-11-03 20:19:35
【问题描述】:

我在验证由框架集和框架组成的页面中的元素时遇到问题。

我正在使用代码:

    selenium.selectFrame("relative=up");
    selenium.selectFrame("topFrame");

但它失败并出现错误“找不到元素 topFrame”。尝试导航到任何帧时,我都会遇到类似的错误。

我也尝试过指定 DOM 路径并使用索引,但似乎没有任何效果。

HTML 如下所示:

<frameset framespacing="0" border="0" frameborder="NO" rows="80,*">
    <frame scrolling="NO" frameborder="NO" src="header.html" noresize="" name="topFrame">
    <frameset framespacing="0" border="0" frameborder="NO" cols="210,*">
        <frame scrolling="NO" frameborder="NO" src="menu.html" name="leftFrame">
        <frame scrolling="YES" bordercolor="#78B0D5" frameborder="YES" src="content.html"     name="mainFrame">
        </frame>
    </frameset>
</frameset>

有什么建议吗?

【问题讨论】:

    标签: selenium


    【解决方案1】:

    在上面提到的命令中,而不是写 name="topFrame" 尝试使用 id="topFrame"。 selenium 使用 id 来识别对象。

    【讨论】:

      【解决方案2】:

      根据我的经验,在设置框架上下文时,硒是“喜怒无常的”。我发现定义显式帧标识符而不是仅仅依赖上下文很有用。所以在你的情况下,我会使用:

      selenium.selectFrame("relative=top");
      selenium.selectFrame("css=frame[class=...]");
      

      【讨论】:

        【解决方案3】:

        当使用相对框架导航时,显然这完全取决于您从哪里开始。为了绝对确定这一点,我们总是以selenium.selectFrame("relative=top"); 开始我们的框架导航,这会将您定位在外部&lt;FRAMESET&gt; 级别,而selenium.selectFrame("topFrame"); 是有意义的。

        【讨论】:

          猜你喜欢
          • 2013-04-19
          • 1970-01-01
          • 2021-11-01
          • 2017-05-16
          • 2012-02-08
          • 2020-01-14
          • 1970-01-01
          • 2021-07-04
          • 2022-01-22
          相关资源
          最近更新 更多