java + selenium测试框架(之下载页面上的图片) 版本演化七

来源:互联网 发布:xy苹果助手 网络 编辑:程序博客网 时间:2024/05/17 03:25

java + selenium测试框架(之下载) 版本演化七

准备攻克验证码验证,知识积累中。

下载感兴趣的图片

从网上找了个程序,挺好用的,直接放这里了。

import java.io.BufferedInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class SaveFileUtil {    public final static boolean DEBUG = true;//调试用    private static int BUFFER_SIZE = 8096;    /**       * 将HTTP资源另存为文件       *       * @param destUrl String       * @param fileName String       * @throws Exception       */      public static void saveToFile(String destUrl, String fileName) {        FileOutputStream fos = null;        BufferedInputStream bis = null;        HttpURLConnection httpUrl = null;        URL url = null;        byte[] buf = new byte[BUFFER_SIZE];        int size = 0;        //建立链接        try {            url = new URL(destUrl);            httpUrl = (HttpURLConnection) url.openConnection();            //连接指定的资源            httpUrl.connect();            //获取网络输入流            bis = new BufferedInputStream(httpUrl.getInputStream());            //建立文件            fos = new FileOutputStream(fileName);            if (DEBUG)                 System.out.println("正在获取链接[" + destUrl + "]的内容..\n将其保存为文件[" + fileName + "]");            //保存文件            while ( (size = bis.read(buf)) != -1)               fos.write(buf, 0, size);        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if(fos!=null)fos.close();            } catch (IOException e) {                e.printStackTrace();            }            try {                if(bis!=null)bis.close();            } catch (IOException e) {                e.printStackTrace();            }            httpUrl.disconnect();        }      }}

Demos

需求:从126.com的网站上,下载个图片,就是那个二维码的小图片。

public class Login126Page extends Page{    public Login126Page(WebDriver driver) {        super(driver);    }    @FindBy(id="yxCode")    protected WebElement imgSrc;    protected String getPicInfo() {        sleep(2);        return imgSrc.getAttribute("src");    }}

测试用例:

public class Login126Test extends TestBase{    Login126Page page = null;    String path = "http://www.126.com/";    @BeforeMethod    public void initPage() {        page = new Login126Page(driver);        page.openAndWait(path);        PageFactory.initElements(driver, page);    }    @Test    public void testLogin() {        String url = page.getPicInfo();        SaveFileUtil.saveToFile(url, "1.jpg");        System.out.println(page.getCurrentUrl());    }}

写在最后,为了增加点击。需要TestBase,Page的兄弟请看之前的博客。

0 0
原创粉丝点击