我在验证由框架集和框架组成的页面中的元素时遇到了问题。
我正在使用代码:
selenium.selectFrame("relative=up");
selenium.selectFrame("topFrame");
但它失败并显示错误“Element topFrame not found”。尝试导航到任何帧时,我都会遇到类似的错误。
我也尝试过指定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>
有什么建议吗?
答案 0 :(得分:1)
根据我的经验,当设置帧上下文时,硒是“气质的”。我发现定义显式帧标识符而不仅仅依赖于上下文很有用。所以在你的情况下,我会使用:
selenium.selectFrame("relative=top");
selenium.selectFrame("css=frame[class=...]");
答案 1 :(得分:1)
在上面提到的命令中,而不是写name =&#34; topFrame&#34;尝试使用id =&#34; topFrame&#34;。 selenium使用id来标识对象。
答案 2 :(得分:0)
使用相对帧导航时,显然一切都取决于你从哪里开始。为了确保这一点,我们始终使用selenium.selectFrame("relative=top");
开始我们的框架导航,这使您处于<FRAMESET>
外部,selenium.selectFrame("topFrame");
将有意义。