Selenium:选择框架

时间:2011-07-19 14:12:24

标签: c# iframe selenium selenium-rc

<iframe width="100%" scrolling="yes" height="100%" frameborder="0" src="/detail.aspx=" name="displayIFrame"></iframe>
<html>
<head>
<frameset framespacing="1" onload="ScrollToAnchor('text', 'Docln', false); if (document.all) {var h = doccontext.document.all.docContextContentDiv.offsetHeight; document.body.rows = h + ',*,22';}" rows="95,*,22" >
    <frame scrolling="no" title="Heading frame" src="head.aspx" name="head"></frame>
    <frame scrolling="yes" title="Content frame" src="content.aspx" name="text"></frame>
    <frame scrolling="no" title="Footer frame" src="footer.aspx" name="footer"></frame>
</frameset>

我有类似的东西:

                Selenium.SelectFrame("displayIFrame");
                Selenium.SelectFrame("head");
                Selenium.SelectFrame("text"); // I get "ERROR: Not a frame: text"

为什么我得到错误:不是框架:文字从上面的html代码中,“text”是我试图选择的框架的名称。好像我正在做的一切正确。请帮帮我。

2 个答案:

答案 0 :(得分:6)

您可以尝试在选择其他框架之前选择顶部框架,如下所示:

Selenium.SelectFrame("relative=top");
Selenium.SelectFrame("head");
Selenium.SelectFrame("relative=top");
Selenium.SelectFrame("text");

答案 1 :(得分:4)

根据参考,你可以多次调用它来选择嵌套帧。但是,“head”和“text”不是嵌套的,但它们是兄弟姐妹。我想你可以像这样选择“头部”框架:

Selenium.SelectFrame("displayIFrame");
Selenium.SelectFrame("head");

或选择“text”框架,如下所示:

Selenium.SelectFrame("displayIFrame");
Selenium.SelectFrame("text");

如果你必须在你的场景中从“头部”切换到“文本”,请尝试:

Selenium.SelectFrame("displayIFrame");
Selenium.SelectFrame("head");

//do something

Selenium.SelectFrame("relative=parent");
Selenium.SelectFrame("text");

//do something