import com.thoughtworks.selenium.*; import java.util.regex.Pattern; //该实例都是有google邮箱做测试

public class 登录GMAIL extends SeleneseTestCase{ public void steUp() throws Exception { //指定启动的浏览器和对应的地址 steUp("http://www.gmail.com","*chorme"); } public void test 登录GMAIL() throws Exception{ //首先先打开登录地址 selenium.open("/");

    //输入账号和密码,点击“登录”按钮,中间需要一个等待时间,设定3s;
    assertTrue(selenium.getTitle().matches("^Gmail[\\s\\S]*$"));
    selenium.type("E-mail","xxxxxxxxxx@gmail.com");
    selenium.type("passwd","xxxxxxxxx");
    selenium.click("signIn");
    selenium.waitForPageToLoad("3000");

    assertTrue(selenium.getTitle().matches("^Gmail[\\s\\S]*$"));
    //线程挂起,等待时间为3s
    Thread.sleep("3000");

    //编写邮件
    selenium.mouseDown("//div[@class='n3']/div[1]/div[1]");
    selenium.mouseUp("//div[@class='n3']/div[1]/div[1]");

    assertTrue(selenium.getTitle().matches("^Gmail - 撰写邮件 -[\\s\\S]*$"));
    //输入收件人邮箱、标题、和邮件正文
    selenium.type("to","wtm_999@sina.com");
    selenium.type("subject","testgmail");
    selenium.type("//body[@class='editable  LW-yrriRe']","This is test mail");
    selenium.mouseDown("//div[@class='dx J-Jw']/div[1]");
    selenium.mouseUp("//div[@class='dx J-Jw']/div[1]");

    //对邮箱中的邮件进行管理,删除邮件
    //在开启另一个线程的时候,需要把已经开启的一个线程给挂起
    Thread.sleep("3000");
    assertTrue(selenium.getTitle().matches("^Gmail-收件箱[\\s\\S]*$"));
    String totalEmailBefore = selenium.getText("//span[@class='Dj']/b[3]");
    selenium.click("//input[@class='oz-jc']");
    selenium.mouseDown("//div[@class='pl J-J5-Ji']/div[3]");
    selenium.mouseUp("//div[@class='pl J-J5-Ji']/div[3]");
    Thread.sleep("30000");
    String.totalEmailNow = selenium.getTitle("//span[@class = 'Dj']/b[3]");
    System.out.println(totalEmailBefore + "Email at the begin, now only" + totalEmailNow + "Email!!");
    int emailNumBerfore = (Integer.valueOf(totalEmailBefore)).int Value();
    int emailNumNow = (Integer.valueOf(emailNumBerfore - emailNumNow));
    String delNum = String.valueOf(emailNumBerfore - emailNumNow);
    assertEquals("1",delNum);

    //对邮箱的存档操作
    //挂起或者结束另一个进程
    Thread.sleep("30000);
    assertTrue(selenium.getTitle().matches("^Gmail-收件箱[\\s\\S]*$"));
    selenium.click("//input[@class='oz-jc']");
    selenium.mouseDown("//div[@class='pl J-J5-Ji']/div[@act='7']");
    selenium.mouseUp("//div[@class='pl J-J5-Ji']/div[@act='7']");
    Thread.sleep("10000");

    assertTrue("selenium.isTextPresent("该会话已存档")");//这里是一开始我们编写的脚本,我们把这行代码修改成下面的代码就OK了

    //这里我们一运行,会发现报assertTrue的错误,原因是selenium.isTextPresent没有找到
    //文本“该会话已存档”,但是检测页面信息的确是存在。这里我们作如下修改;
    //这是由于selenium的一个缺陷,不能检查静态文本文件

    assertTrue(selenium.isTextPresent("//div[@class='vh']/span"));


    //下面我们接着测试邮箱的搜索功能
    selenium.type("//input[@class='bQ nr']","test mail");
    selenium.mouseDown("//td[@class = 'bN bM']/div[3]");
    selenium.mouseUp("//td[@class = 'bN bM']/div[3]");
    Thread.sleep("10000");
    assertFalse(selenium.isElementPresent("//td[@class = 'TC']/b[3]"));
    System.out.println("通过搜索\"test mail\",我们找到了" + totalEmailForSerch + "封邮件");
    selenium.type("//input[@class = 'bQ nr']","百度");
    selenium.mouseDown("//td[@class = 'bN bM']/div[3]");
    selenium.mouseUp("//td[@class = 'bN bM']/div[3]");
    Thread.sleep("10000");
    assertTrue(selenium.isVisible("//td[@colspan = '3']"));
    String testString = selenium.getText("//td[@colspan = '3']");
    System.out.println("搜索""百度");
    System.out.println(testString);
    //这里有人或许会说,怎么没有检查邮件是否发送成功呢?
    //这里卖一个关子,可以自己完成
}
    @After
public void tearDown() throws Exception {
    selenium.stop();
}

}



blog comments powered by Disqus

Published

28 March 2014

Tags