51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6084|回复: 3
打印 上一主题 下一主题

watir中ie出现弹出窗口后如何定位回ie

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-5-14 11:34:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上搜索了几种解决watir弹出窗口的方案,尝试了autoit和win32api这两种解决方案,出现的问题都
是,处理弹出窗口的那块代码无法返回父ie,进行弹出窗口操作,有什么办法可以解决这个问题么
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-5-15 11:05:13 | 只看该作者
lz遇到是模态窗口吗?  http://www.baidu.com/s?bs=click_no_wait&f=8&wd=%C4%A3%CC%AC%B4%B0%BF%DA见百度的解释

处理模态窗口非常麻烦,建议lz去官方论坛搜搜关于  Watir::IE#attach_modal() 的文章,


另外,建议lz认真看看这个文章,http://piecehealth.javaeye.com/blog/605019


该文指出了一个很重要的问题,
如果watir操作的ie窗口出现了popup,这导致页面内的任何元素无法被操作、访问
(如 常见的alert、confirm框或者其他各种对话框弹出后,不关闭这个对话框就不能点击网页上的按钮,貌似锁死)
那么watir默认会等到这个ie窗口的popup全部关闭才能继续执行ruby代码,如果代码中没有处理popup,那么程序就走不动了

为了解决这个问题,watir做了一个click_no_wait(以后也许会有更多xxx_no_wait)方法,
即点击某个按钮后,忽略该操作是否导致ie锁死,继续执行之后的代码,可问题是,直到watir1.6.5,这个click_no_wait方法依然有bug
针对click_no_wai的bug,该文已给出了解决方法,我试过了,有效!

模态窗口也会导致主窗口死锁,代码应该增加处理模态窗口的逻辑。一般的做法是另起一个thread,关闭这个模态窗口。

关于“另起一个thread”的代码,请看我上传的附件。
该附件中有关于“不用、使用thread关闭popup的方法”针对不同的情况使用。

附件说明:
测试用到的网页 1.html  
测试程序 main.rb
解决click_no_wait用到的代码 ClickHelper.rb  
调用thread时用到的代码  WindowHelper.rb
调用thread时用到的代码 win_click.rb

[ 本帖最后由 duowanlaomao 于 2010-5-15 12:19 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-5-20 15:57:05 | 只看该作者
http://samples.msdn.microsoft.co ... howModalDialog2.htm  传说中的模态窗口,用来验证你的代码吧!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-13 10:50:23 | 只看该作者
ls有关于Basic Authentication这种弹出框的例子吗?我现在就是识别不到Basic Authentication这个弹出框,也不报错,就等在那里
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-6 10:55 , Processed in 0.523781 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表