watir frames元素交互方式
frame:
>
"menu.htm" name="menu">
"main.htm" name="main">
1.判断页面是否有frame元素
ie.show_frames
2.获取frame
3.IE访问iframe元素出错解决方案
由于IE的安全限制了跨域访问,所以访问frame的url时会被IE阻止,可以通过以下方式解决:
1)直接访问iframe的url
ie.goto(http://www.thenewsite.com/framecontents.html).
2)通过IE选项>安全>受信任的站点>站点,将网站添加到区域中,去掉 "对该区域中的所有站点要求服务器验证"
3)在HOSTS文件中添加站点,文件位置:c:\windows\system32\drivers\etc
192.168.10.32 foosystem 4)将url中的ip192.168.10.32用host名替代;将IE浏览器安全级别设置最低
5)如果以上方法都不奏效,仍有错误信息一直干扰,可以将错误信息关闭(watir1.4):
ie.logger.level = Logger::ERROR
ie.frame(:name, "menu")
3.frame内元素的交互
设menu的frame里面有元素
Iframe:
browser.frame(:index, 1).locate browser.div(:id, "somebutton").fire_event("onmousedown") browser.frame(:index, 1).locate browser.div(:id, "somebutton").fire_event("onmouseup")
注:由于交互后页面内容会重新返回到根页面,所以需要不断的执行locate与iframe内部元素交互。
"index.htm">Click Menu Item
交互方式:
ie.frame(:name, "menu").link(:text, "Click Menu Item").click
4.嵌套frame交互
ie.frame(:name, "frame").frame(:name, "nested_frame")