用WatiN测试网站
在网页里面用WatiN总是报“The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.”错误,解决办法就是在Page标记中加入:AspCompat="true"。
一个操纵JS弹出框点击的例子:
IE ie = new IE(“http://………”); ie.Button(Find.ByClass("edit style01 forcountry").And(Find.ByValue("Save"))).ClickNoWait(); WatiN.Core.DialogHandlers.ConfirmDialogHandler approveConfirmDialog = new WatiN.Core.DialogHandlers.ConfirmDialogHandler(); using (new WatiN.Core.DialogHandlers.UseDialogOnce(ie.DialogWatcher, approveConfirmDialog)) { approveConfirmDialog.WaitUntilExists(10); approveConfirmDialog.OKButton.Click(); } ie.WaitForComplete();
比较重要的是按钮要用ClickNoWait()方法,如果用Click方法,调用测试的页面会一直没有反应。还有DialogHandler的WaitUntilExists方法,里面要有参数,表示等待的时间。