l Web Driver Create Web Driver java Quit
目录 l Web. Driver 获取操作浏览器 Ø Create. Web. Driver. java Ø Quit. Web. Driver. java l 具体业务操作 Ø Mobile. Op. Order. New. java l 邮件通知或告警 Ø Mail. java Ø Smtp. Auth. java l 参数化 Ø Excel. Param. java Ø orderparameter. xls
脚本处理 l Web. Driver 获取操作浏览器 Ø Create. Web. Driver. java public class Create. Web. Driver { private Web. Driver driver; public Web. Driver Get. Web. Driver(String explore. Type){ if (explore. Type. equals("ie")){ try{ //启动IEDriver. Server. exe,调起浏览器,IE浏览器必 须用到此程序 System. set. Property("webdriver. ie. driver", "C: \Program Files\Internet Explorer\IEDriver. Server. exe"); //new一个Internet. Explorer. Driver对象实例 driver = new Internet. Explorer. Driver(); //设置等待时间,以确保页面正常加载 driver. manage(). timeouts(). implicitly. Wait(30, Time. Unit. SECONDS) ; }catch(IOException e){ System. out. println("~~~~程序抛出IOException异常~~~"); } catch(Session. Not. Found. Exception se){ System. out. println("~~~~程序抛出Session. Not. Found. Exception异常,页面没有正常启动 ~~~"); } return driver;
脚本处理 l Web. Driver 获取操作浏览器 Ø Create. Web. Driver. java }else if(explore. Type. equals("firefox")){ try{ //new一个Firefox. Driver对象实例 driver=new Firefox. Driver(); //设置等待时间,以确保页面正常加载 driver. manage(). timeouts(). implicitly. Wait(30, Time. Unit. SECONDS) ; }catch(IOException ie){ System. out. println("~~~~程序抛出IOException异常,请检查原因~~~"); } return driver; }else{ throw new Illegal. State. Exception("selected explorer is not supported: Web. Driver 不支持您所使用的浏览器"); } } }
脚本处理 l Web. Driver 获取操作浏览器 Ø Quit. Web. Driver. java public class Quit. Web. Driver { public void quit. Web. Driver(Web. Driver driver){ Set<String> windows=driver. get. Window. Handles(); for(String a: windows){ driver. switch. To(). window(a). close(); } try { Thread. sleep(15); driver. quit(); } catch (Interrupted. Exception ex) { System. out. println("~~~~程序抛出Interrupted. Exception异常~~~"); } } }
脚本处理 l 邮件通知或告警 Ø Mail. java public Hash. Map<String, String> send(){ Hash. Map<String, String> map=new Hash. Map<String, String>(); map. put("state", "success"); String message="邮件发送成功!"; Session session=null; Properties props = System. get. Properties(); props. put("mail. smtp. host", smtp. Server); if(if. Auth){ //服务器需要身份认证 props. put("mail. smtp. auth", "true"); Smtp. Auth smtp. Auth=new Smtp. Auth(username, password); session=Session. get. Default. Instance(props, smtp. Auth); }else{ props. put("mail. smtp. auth", "false"); session=Session. get. Default. Instance(props, null); } session. set. Debug(true); Transport trans = null;
脚本处理 l 邮件通知或告警 Ø Mail. java try { Message msg = new Mime. Message(session); try{ Address from_address = new Internet. Address(from, display. Name); msg. set. From(from_address); }catch(java. io. Unsupported. Encoding. Exception e){ e. print. Stack. Trace(); } Address[] address = null; if (to!=null){ address = new Internet. Address[to. length]; for (int i=0; i<to. length; i++){ String s=to[i]; address[i] = new Internet. Address(s); } }
脚本处理 l 邮件通知或告警 Ø Mail. java msg. set. Recipients(Message. Recipient. Type. TO, address); msg. set. Subject(subject); Multipart mp = new Mime. Multipart(); Mime. Body. Part mbp = new Mime. Body. Part(); mbp. set. Content(content. to. String(), "text/html; charset=gb 2312"); mp. add. Body. Part(mbp); if(!file. is. Empty()){//有附件 Enumeration<String> efile=file. elements(); while(efile. has. More. Elements()){ mbp=new Mime. Body. Part(); filename=efile. next. Element(). to. String(); //选择出每一个附件名 File. Data. Source fds=new File. Data. Source(filename); //得到数据源 mbp. set. Data. Handler(new Data. Handler(fds)); //得到附件本身并至入 Body. Part mbp. set. File. Name(fds. get. Name()); //得到文件名同样至入Body. Part mp. add. Body. Part(mbp); } file. remove. All. Elements(); } msg. set. Content(mp); //Multipart加入到信件 msg. set. Sent. Date(new Date()); //设置信件头的发送日期
脚本处理 l 邮件通知或告警 Ø Mail. java //发送信件 msg. save. Changes(); trans = session. get. Transport("smtp"); trans. connect(smtp. Server, username, password); trans. send. Message(msg, msg. get. All. Recipients()); trans. close(); }catch(Authentication. Failed. Exception e){ map. put("state", "failed"); message="邮件发送失败!错误原因:n"+"身份验证错误!"; e. print. Stack. Trace(); }catch (Messaging. Exception e) { message="邮件发送失败!错误原因:n"+e. get. Message(); map. put("state", "failed"); e. print. Stack. Trace(); Exception ex = null; if ((ex = e. get. Next. Exception()) != null) { System. out. println(ex. to. String()); ex. print. Stack. Trace(); } } System. out. println("n提示信息: "+message); map. put("message", message); return map; }
脚本处理 l 邮件通知或告警 Ø Smtp. Auth. java public class Smtp. Auth extends javax. mail. Authenticator { private String username, password; public Smtp. Auth(String username, String password){ this. username = username; this. password = password; } protected javax. mail. Password. Authentication get. Password. Authentication() { return new javax. mail. Password. Authentication(username, password); } }
脚本处理 l 参数化 Ø Excel. Param. java public class Excel. Param { //创建get. Parameter. From. Excel方法,根据行和列获取excel中表格的内容 public String get. Parameter. From. Excel(File excel. File, int row. Num, int col. Num) { //定义String对象,用于存取读取到的excel表格中的内容,便于返回 String str=""; //定义一个 作簿 Workbook rwb = null; //定义一个Cell cell = null; // 创建输入流 try { Input. Stream stream = new File. Input. Stream(excel. File); // 获取Excel文件对象 rwb = Workbook. get. Workbook(stream); // 获取文件的指定 作表 默认的第一个 Sheet sheet = rwb. get. Sheet(0); //通过行和列定位需要读取的单元格,并且赋值给str cell = sheet. get. Cell(col. Num, row. Num); str = cell. get. Contents(); } catch (File. Not. Found. Exception e) { // TODO Auto-generated catch block System. out. println("~~~File. Not. Found. Exception~~~"); }catch (Biff. Exception e) { // TODO Auto-generated catch block System. out. println("~~~Biff. Exception~~~"); } catch (IOException e) { // TODO Auto-generated catch block System. out. println("~~~IOException~~~"); }
脚本处理 l pom. xml <!-- 加载junit包 --> <dependency> <group. Id>junit</group. Id> <artifact. Id>junit</artifact. Id> <version>4. 10</version> <scope>test</scope> </dependency> <!-- 加载selenium包 --> <dependency> <group. Id>org. seleniumhq. selenium</group. Id> <artifact. Id>selenium-java</artifact. Id> <version>2. 31. 0</version> </dependency>
脚本处理 l pom. xml <!-- 加载javax. mail包,用于邮件发送 --> <dependency> <group. Id>javax. mail</group. Id> <artifact. Id>mail</artifact. Id> <version>1. 5. 0 -b 01</version> </dependency> <!-- 加载读取Excle所需的jar包 --> <dependency> <group. Id>net. sourceforge. jexcelapi</group. Id> <artifact. Id>jxl</artifact. Id> <version>2. 6. 12</version> </dependency> <!-- 加载excel读取所需的org. apache. poi包 --> <dependency> <group. Id>org. apache. poi</group. Id> <artifact. Id>poi-excelant</artifact. Id> <version>3. 9</version> </dependency>
Q&A
- Slides: 17