51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3939|回复: 16
打印 上一主题 下一主题

[求助] 关于选择outlook对话框的代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-15 13:44:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是用VBS编写的关于QTP自动发送Email的代码:
Function SendMail(SendTo, Subject, Body, Attachment)
   Set ol = CreateObject("Outlook.Application")
   Set Mail = ol.CreateItem(0)
   Mail.to = SendTo
   Mail.Subject = Subject
   Mail.Body = Body
   If(Sttachment <> "") Then
      Mail.Attachments.Add(Attachment)
   End If
   Mail.Send
   ol.Quit
   Set Mail = Nothing
   Set ol = Nothing
End Function

Call SendMail("test@sina.com", "qtTest.name", "qtTest.LastRunResults.Status", "")


当运行完这段代码后,会弹出一个对话框,让你选择是否发送邮件的,请各位大侠帮帮忙,如何编写这个对话框的程序

[ 本帖最后由 hlaissy 于 2009-7-15 13:45 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-7-15 13:47:13 | 只看该作者
直接用sendkeys 发送回车就行了吧
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-15 14:02:15 | 只看该作者
我如何来选择“是”或“否”呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-7-15 14:06:48 | 只看该作者

回复 3# 的帖子

Send Tab key
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-7-15 15:14:18 | 只看该作者
谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-7-15 15:55:20 | 只看该作者
我还是不会写,能帮我写一个吗?谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-7-15 16:01:53 | 只看该作者

回复 6# 的帖子

上面说的方法可能不行,这是outlook防脚本发垃圾邮件的一个机制,通过QTP发送的时候会弹出提示,我记得之前遇到时有两种情况,对于office 2007里面的outlook是可以去配置中取消弹出提示框的,对于2003版的outlook,就没有提供取消的方法,要在QTP的外部运行一段代码来取消掉这个弹出提示框
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-7-15 16:11:37 | 只看该作者
代码如何来写?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-7-15 16:58:07 | 只看该作者
用spy捕捉一下对话框的属性,用描述性编程,同时加一个判断,若弹出对话框,点击确定,没有弹出,邮件已经发发
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-7-16 15:48:26 | 只看该作者
不行,我用sendkeys写的代码:
Dim Wshshell
Set Wshshell= WScript.CreateObject("WScript.Shell")
Wshshell.AppActivate "Microsoft Office Outlook"
WScript.Sleep 5000
Wshshell.SendKeys "+{TAB}"
WScript.Sleep 2000
Wshshell.SendKeys "~"

当上面的程序run完弹出对话框时,这段代码却不运行。。。

还有就是用QTP扑捉对话框的属性,同样是不能运行。。。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-7-16 16:20:55 | 只看该作者
参考一下:[原创]自动点击outlook中安全页面中yes按钮的方法 by风过无息

地址:http://www.51testing.com/?uid-3528-action-viewspace-itemid-97579
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-7-16 16:21:52 | 只看该作者
上面写的应该很详细
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-7-16 17:02:05 | 只看该作者
我这里弹出的窗口是这样的:


还有我想问你的是fso.SendKeys "a", True中的“a”是什么意思?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-7-16 18:02:37 | 只看该作者

回复 1# 的帖子

如果只是想通过QTP发送邮件可以参考如下两种方法

1. 通过CDO.Message
注意需要在代码中填上对应的SMTP Server,Outlook就填自己公司的,可以在Outlook的Email Account信息中查看到
  1. Function SendMail(SendFrom, SendTo, Subject, Body)
  2.     Set oMail = CreateObject("CDO.Message")
  3.         oMail.From = SendFrom
  4.     oMail.To = SendTo
  5.     oMail.Subject = Subject
  6.     oMail.Textbody  = Body
  7.        
  8.         oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  9.         oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ‘公司的SMTP服务器
  10.         oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  11.         oMail.Configuration.Fields.Update
  12.        
  13.     oMail.Send

  14.     Set oMail = Nothing

  15. End Function
复制代码
2. 通过CDONTS.NewMail
下面的链接介绍的比较详细
http://blog.csdn.net/KanJingCode/archive/2006/05/17/742030.aspx
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-7-16 18:08:26 | 只看该作者

回复 14# 的帖子

thanks
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-7-17 18:31:41 | 只看该作者
http://www.advancedqtp.com/knowl ... ook-security-popup/

楼主可以参考下这个帖子~
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2009-9-22 14:39:12 | 只看该作者
我有两个问题想和大家讨论下:
1)我参考了11#和16#的链接里的代码,加到了下面的红色部分,然后在qtp运行,然后那个窗口出来后让你选择yes或者no,然后就停在那里不动了,这是为什么呢?好像没有效果嘛……而且其实我也不太明白这段红色代码的意思,谁能解释一下吗~~谢拉

2) 我一直很好奇这个问题,就是Mail.Subject咯Mail.to咯这种对象或者函数在qtp或者vbs的帮助文档里并搜不到,大家是怎么知道这些函数的呢?包括很多操作excel的也是,我都是网上搜来的,可要是真的想自己写,应该参照什么文档或者什么工具呢?

Function SendMail(SendTo, Subject, Body, Attachment)
   Set ol = CreateObject("Outlook.Application")
   Set Mail = ol.CreateItem(0)
   Mail.to = SendTo
   Mail.Subject = Subject
   Mail.Body = Body
   If(Sttachment <> "") Then
      Mail.Attachments.Add(Attachment)
   End If
   Mail.Send
'   ol.Quit
       

        Set fso = CreateObject("WScript.shell")
        While fso.AppActivate("Microsoft Outlook") =FALSE
                WScript.sleep 1000
        Wend
        fso.SendKeys "a",True
        fso.SendKeys "y",True
        wscript.sleep 7000
        While fso.AppActivate ("Microsoft Outlook") =FALSE
          WScript.sleep 1000
        Wend
        fso.SendKeys "y",True
       
        Set Mail = Nothing
        Set ol = Nothing
End Function

Call SendMail("test@sina.com", "qtTest.name", "qtTest.LastRunResults.Status", "")

[ 本帖最后由 whoamiyaya 于 2009-9-22 14:46 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 06:23 , Processed in 0.080393 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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