首页 watij对js弹出框的处理

watij对js弹出框的处理

举报
开通vip

watij对js弹出框的处理watij对js弹出框的处理 最近使用watij由于遇到js弹出框,让我郁闷了两个礼拜了,虽然网上有不少对于这个处理的帖子,但是由于帖子描述的不够清晰导致花费大量时间也没有搞定,现在在一段时间的努力下,终于搞定了,为了其他人不要像我一样搞很久,我将结合例子一起给出一个troubleshooting,这里的例子是取的watij中的JavascriptClick.html页面做的测试。 首先新建两个类 AlertDialogEvent ClickThread package watij.utilities; ...

watij对js弹出框的处理
watij对js弹出框的处理 最近使用watij由于遇到js弹出框,让我郁闷了两个礼拜了,虽然网上有不少对于这个处理的帖子,但是由于帖子描述的不够清晰导致花费大量时间也没有搞定,现在在一段时间的努力下,终于搞定了,为了其他人不要像我一样搞很久,我将结合例子一起给出一个troubleshooting,这里的例子是取的watij中的JavascriptClick.html页面做的测试。 首先新建两个类 AlertDialogEvent ClickThread package watij.utilities; import watij.elements.HtmlElement; /** * 触发点击线程(ClickThread)事件 * * @author shiwanli * */ public class AlertDialogEvent { public static void fire(final HtmlElement btn) { new Thread(new ClickThread(btn)).start(); try { // 停一小会看一下效果 Thread.sleep(100); } catch (InterruptedException e) { Debug.handleException(e); } } } package watij.utilities; import watij.elements.HtmlElement; /** * 点击线程 * * @author shiwanli * */ public class ClickThread implements Runnable { private HtmlElement btn; public ClickThread(HtmlElement btn) { this.btn = btn; } public void run() { try { this.btn.click(); } catch (Exception e) { Debug.handleException(e); } } } 为了在中文系统中点击相应的按钮这里对两个类进行了修改 修改IEAlertDialog类 package watij.runtime.ie; import com.jniwrapper.win32.ui.Wnd; import watij.dialogs.AlertDialog; import watij.utilities.WatijResourceLoader; import watij.utilities.WatijResources; public class IEAlertDialog extends IEBaseDialog implements AlertDialog { public static AlertDialog findAlertDialog(IE ie) throws Exception { Wnd wnd = IEUtil.waitDialogWnd(IE.TITLE); return new IEAlertDialog(wnd, ie); } public IEAlertDialog(Wnd dialog, IE ie) { super(dialog, ie); } public void ok() throws Exception { Wnd wnd = IEUtil.waitDialogWnd(dialog, "Button", "确定"); IEUtil.clickWindowUntilGone(wnd, dialog); } } 修改IEConfirmDialog类 package watij.runtime.ie; import com.jniwrapper.win32.ui.Wnd; import watij.dialogs.ConfirmDialog; import watij.utilities.WatijResourceLoader; import watij.utilities.WatijResources; public class IEConfirmDialog extends IEAlertDialog implements ConfirmDialog { public IEConfirmDialog(Wnd dialog, IE ie) { super(dialog, ie); } public static ConfirmDialog findConfirmDialog(IE ie) throws Exception { Wnd wnd = IEUtil.waitDialogWnd(IE.TITLE); return new IEConfirmDialog(wnd, ie); } public void cancel() throws Exception { // Wnd wnd = IEUtil.waitDialogWnd(dialog, "Button", // WatijResourceLoader.getString(WatijResources.IEConfirmDialog_Cancel)) ; // IEUtil.clickWindowUntilGone(wnd, dialog); Wnd wnd = IEUtil.waitDialogWnd(dialog, "Button", "取消"); IEUtil.clickWindowUntilGone(wnd, dialog); } } 新创建alterClick类来看下执行结果 package LIS; import java.util.List; import com.jniwrapper.win32.ui.Wnd; import watij.dialogs.AlertDialog; import watij.finders.SymbolFactory; import watij.runtime.ie.IE; import watij.runtime.ie.IEUtil; import watij.utilities.AlertDialogEvent; public class alterClick { //protected static final String DIALOG_CLASSNAME = "#32770"; public static void main (String[] args) throws Exception { try{ IEUtil.closeAllDialogs(); IEUtil.closeAllBrowsers(); } catch(Exception e) { e.printStackTrace(); } IE ie = new IE(); //打开 IE 浏览器 ie.start(); ie.goTo("file:///E:/shiwanli_work/watij_release_3.2.1/res/html/Javasc riptClick.html");//打开JavascriptClick ie.maximize();//页面最大化 ie.waitUntilReady();//等待页面完成 ie.bringToFront();//将页面置于前端 ie.maximize();//页面最大化 ie.sendKeys("{tab}{tab}{enter}"); // Wnd dialog= Wnd.findWindow(DIALOG_CLASSNAME, "Microsoft Internet Explorer"); //ie6 // System.out.println(dialog); // Wnd button = Wnd.findWindow("Button","确定"); // System.out.println(button); // button.sendMessageEx(0x00F5, 0, 0); // AlertDialog alert; // alert=ie.alertDialog(); // alert.ok(); AlertDialogEvent.fire(ie.button(SymbolFactory.name, "Microsoft Internet Explorer")); ie.alertDialog().ok(); ie.sendKeys("{tab}{enter}"); ie.confirmDialog().ok(); ie.sendKeys("{enter}"); ie.confirmDialog().cancel(); } } 怎么样是不是按钮可以被点击了, 当然还可以修改IEFileDownloadDialog,IEPromptDialog这些类,不过前面的都修改ok 了其他的还有问题吗,
本文档为【watij对js弹出框的处理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:21KB
软件:Word
页数:0
分类:互联网
上传时间:2017-11-18
浏览量:18