装selenium已经有一段时间了,测试了好久的手动测试啊,一直没有用,一方面是selenium版本的升级,导致我找不到Java,结果就早早的放弃了,另一方面,总觉得录制了也没什么用户,还要开一大堆的工具,很麻烦,今天突然想,把拍客做成自动化测试吧,就一点点的写程序,慢慢觉得有点意思了哈。
一开始只知道用录制的程序,没尝试过里面还能写Java了,这是第一次尝试,还行吧,这个程序很简单,不难,(*^__^*) 嘻嘻……给大家分享一下,顺便记录自己的成长。希望自己一点点的成长,O(∩_∩)O~
package com.jiaoyu.paike;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class Paikeshouye extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://jiaxiaoquan.staff.139.com/");
selenium.start();
}
@Test
public void testPaikeshouye() throws Exception {
this.login();
this.sendPhotos();
Thread.sleep(10000);
this.forword();
this.comment();
this.deletePhoto();
// this.batchPhotos();
}
/**
* 登陆
*/
public void login(){
selenium.open("webroot/apps/paike/index.php?s=/Index/index/");
selenium.type("mobile", "13948895822");
selenium.type("passwd", "111111");
selenium.click("//input[@value='登 录']");
selenium.waitForPageToLoad("30000");
}
/**
* 发单张拍客
*/
public void sendPhotos(){
selenium.type("pkimg", "D://pic//猫猫衣服//2.jpg");
selenium.type("pkcontent", "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十");
selenium.click("link=表情");
selenium.click("//img[@title='呲牙']");
selenium.click("//img[@title='呲牙']");
selenium.click("//img[@οnclick=/"BQinsert(this,3,'pkcontent');/"]");
selenium.click("//img[@title='折磨']");
selenium.click("//img[@title='难过']");
selenium.click("//img[@title='流汗']");
selenium.click("//img[@title='大哭']");
selenium.click("//img[@title='胜利']");
selenium.click("//img[@title='微笑']");
selenium.click("type-close_BQ");
selenium.click("link=主题");
selenium.click("link=主题");
selenium.click("link=主题");
selenium.click("link=主题");
selenium.click("link=主题");
selenium.click("link=主题");
selenium.click("link=发布");
selenium.click("pkcontentsubmit");
selenium.waitForPageToLoad("30000");
}
/**
* 转发
*/
public void forword(){
selenium.click("id=reforwar266");
selenium.type("forpkcontent", "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十");
selenium.click("nowpk_comment");
selenium.click("//table[@id='tblforwardpkcontent']/tbody/tr[2]/td[2]/div/div[2]/p[3]/a[1]/span");
selenium.waitForPageToLoad("30000");
assertEquals("转发成功", selenium.getAlert());
}
/**
* 评论
* @throws Exception
*/
public void comment() throws Exception{
selenium.click("recomment248");
Thread.sleep(10000);
selenium.type("comment_replay248", "so beautiful。。。。。。。。。。。。。。。。");
Thread.sleep(10000);
selenium.click("//input[@value='评论']");
Thread.sleep(10000);
}
public void deletePhoto(){
selenium.click("//a[@οnclick=/"return deleteContent('/webroot/apps/paike/index.php?s=/Index/deletepkcontent/pkcid/269')/"]");
assertTrue(selenium.getConfirmation().matches("^是否确定删除这条拍客[//s//S]$"));
selenium.click("link=下一页");
selenium.waitForPageToLoad("30000");
selenium.chooseCancelOnNextConfirmation();
selenium.click("link=删除");
assertTrue(selenium.getConfirmation().matches("^是否确定删除这条拍客[//s//S]$"));
}
/**
* 批量上传拍客
* 失败:抓取不到上传了哪些图片
*/
public void batchPhotos(){
selenium.click("//div[5]/a/span");
selenium.waitForPageToLoad("30000");
selenium.click("//div[2]/a/b");
selenium.click("pkcontent");
selenium.type("pkcontent", "#狗狗#");
selenium.click("//div[@id='default_type_BQ']/a/b");
selenium.click("//img[@title='呲牙']");
selenium.click("pkcontent");
selenium.type("pkcontent", "#狗狗#(呲牙)I like dog~~");
selenium.click("link=发布");
assertEquals("成功上传9个拍客", selenium.getAlert());
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
在录制的时候,碰到两个问题,在网上也没有搜集到资料,如果有高手,麻烦指导一下拉,非常感谢~
1. selenium录制不到js,flash吗?如何解决
2. 为什么回放的时候不加Thread.sleep()就会报找不到Element,加上后就能跑了呢?