org.suren.autotest.web.framework.invoker.KaptchaInvoker.java Source code

Java tutorial

Introduction

Here is the source code for org.suren.autotest.web.framework.invoker.KaptchaInvoker.java

Source

/*
 * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.suren.autotest.web.framework.invoker;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Options;
import org.suren.autotest.interfaces.framework.HttpApiUtil;
import org.suren.autotest.interfaces.framework.param.AtCookie;
import org.suren.autotest.web.framework.selenium.SeleniumEngine;

/**
 * ??
 * @author <a href="http://surenpi.com">suren</a>
 */
public class KaptchaInvoker {
    /**
     * ???
     * @param engine 
     * @param param data,http://localhost:8080/G2/captcha!getLastCode.do
     * @return ??
     */
    public static String execute(SeleniumEngine engine, String param) {
        WebDriver driver = engine.getDriver();
        Options manage = driver.manage();

        String[] paramArray = param.split(",", 2);

        if (paramArray.length != 2) {
            throw new RuntimeException("Param format is error, should be 'data,url'");
        }

        String key = paramArray[0];
        String url = paramArray[1];

        Set<Cookie> cookies = manage.getCookies();
        List<AtCookie> atCookieList = new ArrayList<AtCookie>();
        for (Cookie cookie : cookies) {
            String name = cookie.getName();
            String value = cookie.getValue();

            AtCookie atCookie = new AtCookie();
            atCookie.setName(name);
            atCookie.setValue(value);
            atCookie.setPath(cookie.getPath());
            atCookie.setDomain(cookie.getDomain());

            atCookieList.add(atCookie);
        }

        String code = HttpApiUtil.getJsonValue(url, atCookieList, key);

        return code;
    }
}