### Question:
Page { public List<HtmlElement> findAllElementsWithAttribute(String attributeName) { return htmlPage.getByXPath(" } Page(HtmlPage htmlPage); List<HtmlLabel> findAllLabelTags(); List<HtmlInput> findAllInputTags(); List<HtmlSelect> findAllSelectTags(); List<HtmlTextArea> findAllTextareaTags(); List<HtmlImage> findAllImageTags(); List<HtmlTable> findAllTableTags(); List<HtmlBlink> findAllBlinkTags(); List<HtmlMarquee> findAllMarqueeTags(); List<HtmlAbbreviated> findAllAbbreviationTags(); List<HtmlAcronym> findAllAcronymTags(); List<HtmlBold> findAllBoldTags(); List<HtmlItalic> findAllItalicTags(); List<HtmlHtml> findAllHtmlTags(); List<HtmlTableCell> findAllTableHeaders(); List<HtmlElement> findAllHeadingTags(); List<HtmlMeta> findAllMetaTags(); List<HtmlUnorderedList> findAllUnorderedLists(); List<HtmlOrderedList> findAllOrderedLists(); List<HtmlInlineFrame> findAllInlineFrameTags(); HtmlElement findHtmlElementById(String elementId); List<HtmlFrame> findAllFrameTags(); List<HtmlArea> findAllAreaTags(); List<HtmlUnknownElement> findAllAppletTags(); List<HtmlDefinitionList> findAllDefinitionLists(); List<HtmlObject> findAllObjectTags(); List<HtmlAnchor> findAllAnchorTags(); List<HtmlFieldSet> findAllFieldsetTags(); List<HtmlBaseFont> findAllBasefontTags(); List<HtmlCenter> findAllCenterTags(); List<HtmlTitle> findAllTitleTags(); List<HtmlElement> findAllElementsWithAttribute(String attributeName); HtmlElement findHtmlTag(); DocumentType getDoctype(); List<HtmlFont> findAllFontTags(); List<HtmlTeletype> findAllTeletypeTags(); List<HtmlUnderlined> findAllUnderlineTags();  }### Answer:
@Test public void findAllElementsWithAttributeShouldFindElementsWithAGivenAttributeName() { String content = "<html><body>" + "<div class=\"demo\">first element with attribute</div>" + "<span class=\"demo\">second element with attribute</span>" + "</body></html>"; Page page = new Page(toHtmlPage(content)); assertEquals(2, page.findAllElementsWithAttribute("class").size()); }