Selenium 访问框架内的元素时出现问题
我在验证由框架集和框架组成的页面中的元素时遇到问题。
我正在使用代码:
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>
有什么建议吗?
I'm having problems verifying elements in a page made up of framesets and frames.
I'm using the code:
selenium.selectFrame("relative=up");
selenium.selectFrame("topFrame");
But it fails with the error "Element topFrame not found". I get similar errors when trying to navigate to any frames.
I've also tried specifying the DOM path, and using indexes, but nothing seems to work.
The HTML looks like this:
<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>
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在上面提到的命令中,不要写 name="topFrame",而是尝试使用 id="topFrame"。
selenium 使用 id 来标识对象。
in the above mentioned command instead of writing name="topFrame" try using id="topFrame".
selenium uses the id to identify the object.
根据我的经验,硒在设置框架上下文时是“喜怒无常”的。我发现定义显式帧标识符而不是仅仅依赖上下文很有用。所以在你的情况下,我会使用:
In my experience, selenium is 'temperamental' when it comes to setting frame contexts. I find it useful to define explicit frame identifiers rather than just rely on context. So in your case, I would use:
当使用相对框架导航时,这显然完全取决于您从哪里开始。为了绝对确定这一点,我们总是以
selenium.selectFrame("relative=top");
开始框架导航,它将您定位在外部level,其中
selenium.selectFrame("topFrame");
有意义。When using relative frame navigation, it obviously all depends upon where you start from. To be absolutely sure of that, we always start our frame navigation with
selenium.selectFrame("relative=top");
, which positions you at the outer<FRAMESET>
level, whereselenium.selectFrame("topFrame");
would make sense.