一个完整的maven配置selenium webdriver工程实例(五)
来源:互联网 发布:编程游戏要钱吗 编辑:程序博客网 时间:2024/06/13 23:36
本文是一个完整的使用maven配置的selenium webdriver工程,主要实现了自动化测试发送邮件的功能。
第一部分:邮件发送 mail
package mail;
import java.util.* ;
import javax.mail.* ;
import javax.mail.internet.* ;
import javax.activation.* ;
/******************************
* @author qicyt1812
* @decription 邮件发送处理程序
* @version 1.0
******************************/
public class Mail {
//定义发件人、收件人、SMTP服务器、用户名、密码、主题、内容等
private String displayName;
private String[] to;
private String from;
private String smtpServer;
private String username;
private String password;
private String subject;
private String content;
private boolean ifAuth; //服务器是否要身份认证
private String filename="";
private Vector<String> file = new Vector<String>(); //用于保存发送附件的文件名的集合
/**
* 设置SMTP服务器地址
*/
public void setSmtpServer(String smtpServer){
this.smtpServer=smtpServer;
}
/**
* 设置发件人的地址
*/
public void setFrom(String from){
this.from=from;
}
/**
* 设置显示的名称
*/
public void setDisplayName(String displayName){
this.displayName=displayName;
}
/**
* 设置服务器是否需要身份认证
*/
public boolean setIfAuth(boolean ifAuth){
this.ifAuth=ifAuth;
System.out.println("~~~"+ifAuth+"~~~"+this.ifAuth);
return this.ifAuth;
}
/**
* 设置E-mail用户名
*/
public void setUserName(String username){
this.username=username;
}
/**
* 设置E-mail密码
*/
public void setPassword(String password){
this.password=password;
}
/**
* 设置接收者
*/
public void setTo(String[] to){
this.to=to;
}
/**
* 设置主题
*/
public void setSubject(String subject){
this.subject=subject;
}
/**
* 设置主体内容
*/
public void setContent(String content){
this.content=content;
}
/**
* 该方法用于收集附件名
*/
public void addAttachfile(String fname){
file.addElement(fname);
}
public Mail(){
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、用户名、密码、接收者、主题、内容
*/
public Mail(String smtpServer,String from,String displayName,String username,String password,String[] to,String subject,String content){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=true;
this.username=username;
this.password=password;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、接收者
*/
public Mail(String smtpServer,String from,String displayName,String username,String password,String[] to){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=true;
this.username=username;
this.password=password;
this.to=to;
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、接收者、主题、内容
*/
public Mail(String smtpServer,String from,String displayName,String[] to,String subject,String content){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=false;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、接收者
*/
public Mail(String smtpServer,String from,String displayName,String[] to){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=true;
this.to=to;
}
/**
* 发送邮件
*/
public HashMap<String, String> send(){
HashMap<String, String> map=new HashMap<String, String>();
map.put("state", "success");
String message="邮件发送成功!";
Session session=null;
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
if(ifAuth){ //服务器需要身份认证
props.put("mail.smtp.auth","true");
SmtpAuth smtpAuth=new SmtpAuth(username,password);
session=Session.getDefaultInstance(props, smtpAuth);
}else{
props.put("mail.smtp.auth","false");
session=Session.getDefaultInstance(props, null);
}
session.setDebug(true);
Transport trans = null;
try {
Message msg = new MimeMessage(session);
try{
Address from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
}catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
Address[] address = null;
if (to!=null){
address = new InternetAddress[to.length];
for (int i=0; i<to.length; i++){
String s=to[i];
address[i] = new InternetAddress(s);
}
}
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(content.toString(), "text/html;charset=gb2312");
mp.addBodyPart(mbp);
if(!file.isEmpty()){//有附件
Enumeration<String> efile=file.elements();
while(efile.hasMoreElements()){
mbp=new MimeBodyPart();
filename=efile.nextElement().toString(); //选择出每一个附件名
FileDataSource fds=new FileDataSource(filename); //得到数据源
mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart
mbp.setFileName(fds.getName()); //得到文件名同样至入BodyPart
mp.addBodyPart(mbp);
}
file.removeAllElements();
}
msg.setContent(mp); //Multipart加入到信件
msg.setSentDate(new Date()); //设置信件头的发送日期
//发送信件
msg.saveChanges();
trans = session.getTransport("smtp");
trans.connect(smtpServer, username, password);
trans.sendMessage(msg, msg.getAllRecipients());
trans.close();
}catch(AuthenticationFailedException e){
map.put("state", "failed");
message="邮件发送失败!错误原因:\n"+"身份验证错误!";
e.printStackTrace();
}catch (MessagingException e) {
message="邮件发送失败!错误原因:\n"+e.getMessage();
map.put("state", "failed");
e.printStackTrace();
Exception ex = null;
if ((ex = e.getNextException()) != null) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
System.out.println("\n提示信息:"+message);
map.put("message", message);
return map;
}
}
第二部分:SmtpAuth
package mail;
public class SmtpAuth extends javax.mail.Authenticator {
private String username,password;
public SmtpAuth(String username,String password){
this.username = username;
this.password = password;
}
@Override
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,password);
}
}
- 一个完整的maven配置selenium webdriver工程实例(五)
- 一个完整的maven配置selenium webdriver工程实例(一)
- 一个完整的maven配置selenium webdriver工程实例(二)
- 一个完整的maven配置selenium webdriver工程实例(三)
- 一个完整的maven配置selenium webdriver工程实例(四)
- 一个完整的maven配置selenium webdriver工程实例(六)
- 一个完整的maven配置selenium webdriver工程实例(七)
- selenium webdriver学习(五)------------iframe的处理
- selenium-webdriver(python) (五)
- Selenium WebDriver TestNg Maven Eclipse java 简单实例
- Selenium 实例化WebDriver
- selenium webdriver 学习总结-Selenium 控制测试流(五)
- selenium webdriver 学习总结-Selenium 控制测试流(五)
- selenium webdriver 学习总结-Selenium 控制测试流(五)
- 为selenium配置webdriver
- 为selenium配置webdriver
- Selenium Webdriver1---创建Selenium-WebDriver工程
- selenium webdriver定位不到元素的五种原因及解决办法(51testing)
- 利用DataTable进行删除GridView中的数据方法之新思路
- eclipse错误整理
- 从零开始
- 斗地主规则
- c++的多线程编程
- 一个完整的maven配置selenium webdriver工程实例(五)
- javaweb起航
- [生活大杂烩-4] 养老延长后的趣事!!
- 软件项目角色
- 在windows7的VS2005下windows media player 控件的使用问题
- 字符串数字转换为整型数字,考虑正负号,溢出,非法字符
- 强类型与弱类型 强引用与弱引用
- froyo系统原生bug及修正:改变系统语言时Launcher2的AllApps内shortcut不刷新[转载]
- AWK中引用单引号几种方式