Отправить запрос из сессии Selenium WD.
Собственно тут все просто,иногда вместо того чтобы открывать какие то страницы во время функциональных тестов на WD,нужно достать какие нибудь данные используя текущую сессию.(инфа о пользователе или еще что нить такое).
Сделать это вроде как просто,но я не нашел ничего подобного на просторах интернета.
Вот мой вариант
 
public Elements sendRequest(String host, String path, String select) {
       HttpGet get;
        Set cookieSet = driver.manage().getCookies();
        try {
            get = new HttpGet(new URIBuilder().setPath(path).build());
            CookieStore cookieStore = new BasicCookieStore();
            HttpClientContext context = HttpClientContext.create();
            RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH).build();
            cookieSet.forEach(cookie -> cookieStore.addCookie(new ApacheCookie(cookie.getName(), cookie.getValue(), cookie.getPath(), cookie.getExpiry())));
            HttpResponse response = HttpClients.custom().setRedirectStrategy(new LaxRedirectStrategy()).setDefaultRequestConfig(globalConfig)
                    .setDefaultCookieStore(cookieStore).build().execute(get, context);
            Elements elements = Jsoup.parse(EntityUtils.toString(response.getEntity(), "UTF-8")).select(select);
            return elements;
        } catch (Exception e) {
                e.printStackTrace();
        }
        return null;
    }
 
Вроде все просто,как я и говорил)
 
Комментариев нет:
Отправить комментарий