Example usage for org.jsoup.nodes Element attr

List of usage examples for org.jsoup.nodes Element attr

Introduction

In this page you can find the example usage for org.jsoup.nodes Element attr.

Prototype

public String attr(String attributeKey) 

Source Link

Document

Get an attribute's value by its key.

Usage

From source file:org.asqatasun.rules.accessiweb22.Aw22Rule11013.java

@Override
protected void check(SSPHandler sspHandler, TestSolutionHandler testSolutionHandler) {

    if (explicitLabelElements.isEmpty() && innerControlLabelElements.isEmpty()) {
        testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE);
        return;// w w w .j a v  a  2 s .  c om
    }
    // if all the label are explicitely defined, the test is passed
    if (innerControlLabelElements.isEmpty()) {
        // add the explicit label element to main handler for counter
        // purpose
        innerControlLabelElements.addAll(explicitLabelElements.get());
        testSolutionHandler.addTestSolution(TestSolution.PASSED);
        return;
    }
    ElementHandler<Element> labelOnError = new ElementHandlerImpl();
    for (Element el : innerControlLabelElements.get()) {
        if (!isForAttributeOfLabelEqualsToIdAttributeOfFormField(el, el.attr(FOR_ATTR))) {
            labelOnError.add(el);
        }
    }
    // use this checker to create sourceCodeRemark when needed
    ElementChecker checker = new ElementPresenceChecker(
            new ImmutablePair(TestSolution.FAILED, INVALID_LABEL_MSG),
            new ImmutablePair(TestSolution.PASSED, ""));
    checker.check(sspHandler, labelOnError, testSolutionHandler);
}

From source file:org.asqatasun.rules.accessiweb22.Aw22Rule13012.java

/**
 * @param element/*from   ww w .ja va2s  . c  o  m*/
 * @return whether the given element is an immediate redirection
 */
private boolean isImmediateRedirection(Element element) {
    String contentAttributeContent = element.attr(CONTENT_ATTR);
    String[] contentAttributeValues = contentAttributeContent.split(SEMI_COLON_CHAR);
    return !(contentAttributeValues != null && contentAttributeValues.length == 2
            && Integer.valueOf(StringUtils.trim(contentAttributeValues[0])) > 0
            && contentAttributeValues[1].toLowerCase().startsWith(URL_STR));
}

From source file:org.asqatasun.rules.elementchecker.attribute.AttributeWithValuePresenceChecker.java

/**
 * This methods checks whether a given attribute is present for a set of
 * elements/*from  ww w .  j  a  v  a2s . co m*/
 *
 * @param elements
 * @param testSolutionHandler
 */
private void checkAttributeWithValuePresence(Elements elements, TestSolutionHandler testSolutionHandler) {

    if (elements.isEmpty()) {
        testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE);
        return;
    }

    TestSolution testSolution = TestSolution.PASSED;

    for (Element el : elements) {
        if (!el.hasAttr(attributeName)
                || (el.hasAttr(attributeName) && !el.attr(attributeName).equals(attributeValue))) {

            testSolution = setTestSolution(testSolution, getFailureSolution());
            createSourceCodeRemark(getFailureSolution(), el, getFailureMsgCode());

        } else if (StringUtils.isNotBlank(getSuccessMsgCode())) {
            testSolution = setTestSolution(testSolution, getSuccessSolution());

            createSourceCodeRemark(getSuccessSolution(), el, getSuccessMsgCode());
        }
    }

    testSolutionHandler.addTestSolution(testSolution);

}

From source file:org.asqatasun.rules.elementchecker.ElementCheckerImpl.java

/**
 * //from w ww. jav  a  2s .c  o  m
 * @param element
 * @param attributeName
 * @param isExternalResource
 * @return the text content of an attribute
 */
protected String buildAttributeContent(Element element, String attributeName, boolean isExternalResource) {
    if (!element.hasAttr(attributeName)) {
        return ABSENT_ATTRIBUTE_VALUE;
    } else if (isExternalResource && !element.attr(ABS_URL_PREFIX + attributeName).isEmpty()) {
        return element.absUrl(attributeName).trim();
    } else {
        return element.attr(attributeName).trim();
    }
}

From source file:org.asqatasun.rules.elementchecker.lang.LangChecker.java

/**
 * //from   w  w w.j  a  v a  2  s.  c om
 * @param element
 * @param sspHandler
 * @return 
 */
protected String extractLangDefinitionFromElement(Element element, SSPHandler sspHandler) {
    String lang = element.attr(LANG_ATTR).trim();
    String xmlLang = element.attr(XML_LANG_ATTR).trim();
    // if the lang attributes are identical, return one of them
    if (xmlLang.isEmpty() && !lang.isEmpty()) {
        return lang;
    } else if (!xmlLang.isEmpty() && lang.isEmpty()) {
        return xmlLang;
    } else {
        if (xmlLang.equalsIgnoreCase(lang)) {
            return lang;
            // if the doctype defines html document, returns the lang attribute
            // value
        } else if (!hasSSPXhtmlDoctype(sspHandler)) {
            return lang;
        } else {
            // if the doctype defines a xhtml document, returns the xml:lang
            // attribute value
            return xmlLang;
        }
    }
}

From source file:org.asqatasun.rules.elementselector.AreaElementSelector.java

/**
 * //from  w  ww .  jav a2s  .  co m
 * @param sspHandler
 * @param element
 * @return 
 */
private boolean isMapAssociatedWithImage(SSPHandler sspHandler, Element element) {
    if (StringUtils.isBlank(element.attr(NAME_ATTR))) {
        return false;
    }
    String query = CssLikeSelectorBuilder.buildSelectorFromAttributeTypeAndValue(USEMAP_ATTR,
            element.attr(NAME_ATTR));
    if (CssLikeSelectorBuilder.getNumberOfElements(sspHandler, query) > 0) {
        return true;
    }
    query = CssLikeSelectorBuilder.buildSelectorFromAttributeTypeAndValue(USEMAP_ATTR,
            '#' + element.attr(NAME_ATTR));
    return CssLikeSelectorBuilder.getNumberOfElements(sspHandler, query) > 0;
}

From source file:org.asqatasun.rules.elementselector.LinkElementSelector.java

/**
 * /*ww w.  ja va 2 s .  c o  m*/
 * @param linkElement
 * @param linkText
 * @return whether the current link have a context
 */
protected boolean doesLinkHaveContext(Element linkElement, String linkText) {
    // does the current link have a title attribute? 
    if (considerTitleAsContext && linkElement.hasAttr(TITLE_ATTR)
            && !StringUtils.equalsIgnoreCase(linkElement.attr(TITLE_ATTR), linkText)) {
        return true;
    }
    if (linkElement.hasAttr(ARIA_LABEL_ATTR) && StringUtils.isNotBlank(linkElement.attr(ARIA_LABEL_ATTR))) {
        return true;
    }
    if (linkElement.hasAttr(ARIA_LABELLEDBY_ATTR)
            && StringUtils.isNotBlank(linkElement.attr(ARIA_LABELLEDBY_ATTR))) {
        return true;
    }
    // does the parent of the current link have some text?
    if (StringUtils.isNotBlank(linkElement.parent().ownText())) {
        return true;
    }
    // does the current element have a previous sibling of heading type?
    if (isOneOfPrecedingSiblingofHeadingType(linkElement)) {
        return true;
    }
    // does one of the parent of the current element have a previous sibling 
    // of heading type or is found in the PARENT_CONTEXT_ELEMENTS list?
    for (Element parent : linkElement.parents()) {
        if (PARENT_CONTEXT_ELEMENTS.contains(parent.tagName())
                || isOneOfPrecedingSiblingofHeadingType(parent)) {
            return true;
        }
    }
    return false;
}

From source file:org.asqatasun.rules.rgaa22.Rgaa22Rule06021.java

/**
 * /*  ww w.  j a  va  2  s  . co  m*/
 * @param element
 * @return 
 */
private boolean doesElementHaveRequestedTargetAttribute(Element element) {
    if (!element.hasAttr(TARGET_ATTR)) {
        return false;
    }
    String targetValue = element.attr(TARGET_ATTR);
    return !(StringUtils.equalsIgnoreCase(targetValue, TOP_TARGET_VALUE)
            || StringUtils.equalsIgnoreCase(targetValue, PARENT_TARGET_VALUE)
            || StringUtils.equalsIgnoreCase(targetValue, SELF_TARGET_VALUE));
}

From source file:org.asqatasun.rules.rgaa22.Rgaa22Rule06031.java

/**
 * /*  w w  w.  jav  a2s  . c  o  m*/
 * @param element
 * @return 
 */
private boolean doesElementHaveRequestedTargetAttribute(Element element) {
    if (!element.hasAttr(TARGET_ATTR)) {
        return false;
    }
    String targetValue = element.attr(TARGET_ATTR);
    if (StringUtils.equalsIgnoreCase(targetValue, TOP_TARGET_VALUE)
            || StringUtils.equalsIgnoreCase(targetValue, PARENT_TARGET_VALUE)
            || StringUtils.equalsIgnoreCase(targetValue, SELF_TARGET_VALUE)) {
        return false;
    }
    return true;
}

From source file:org.asqatasun.rules.rgaa30.Rgaa30Rule010204.java

/**
 * /*from  ww w  . j  a v a2  s .c o  m*/
 * @param svgElements
 * @param svgElementsWithoutRoleImage
 * @param ariaAttrOnSvgOrChild
 * @param svgElementsWithDescOrTitleChild
 * @param titleAttrOnSvgOrChild 
 */
private void extractMalformedPatternDetectedElements(ElementHandler<Element> svgElements,
        ElementHandler<Element> svgElementsWithoutRoleImage, ElementHandler<Element> ariaAttrOnSvgOrChild,
        ElementHandler<Element> svgElementsWithDescOrTitleChild, ElementHandler<Element> titleAttrOnSvgOrChild,
        ElementHandler<Element> wellFormedSvgElements) {
    for (Element element : svgElements.get()) {
        boolean patternDetected = false;
        if (!StringUtils.equalsIgnoreCase(element.attr(ROLE_ATTR), "img")) {
            svgElementsWithoutRoleImage.add(element);
            patternDetected = true;
        }
        if (element.hasAttr(ARIA_LABEL_ATTR) || element.hasAttr(ARIA_LABELLEDBY_ATTR)
                || element.hasAttr(ARIA_DESCRIBEDBY_ATTR) || !element.select(ARIA_DESCRIBEDBY_CSS_LIKE_QUERY
                        + "," + ARIA_LABEL_CSS_LIKE_QUERY + "," + ARIA_LABELLEDBY_CSS_LIKE_QUERY).isEmpty()) {
            ariaAttrOnSvgOrChild.add(element);
            patternDetected = true;
        }
        if (!element.select(NOT_EMPTY_ARIA_TITLE_CSS_LIKE_QUERY + "," + NOT_EMPTY_ARIA_DESC_CSS_LIKE_QUERY)
                .isEmpty()) {
            svgElementsWithDescOrTitleChild.add(element);
            patternDetected = true;
        }
        if (element.hasAttr(TITLE_ELEMENT) || !element.select("[title]").isEmpty()) {
            titleAttrOnSvgOrChild.add(element);
            patternDetected = true;
        }
        if (wellFormedSvgElements != null && !patternDetected) {
            wellFormedSvgElements.add(element);
        }
    }
}