使用HTTPUnit获取getElementsByClass()的好方法是什么?

时间:2010-12-06 15:37:38

标签: java junit integration-testing

我试过

HTMLElement[] focused = response.getElementsWithAttribute("class", "focused");

我希望它会找到

<span class="focused">Submit</span>

除其他外,但我得到的只是一个空数组。

谷歌一直没有帮助我。

因此。如果你是我而且你想按类名获得一系列HTMLElements,你会用什么?

编辑:

来源

public class ExampleIT extends TestCase {
    private final String BASE = "http://localhost:8080/preview.htm?";

    @Test
    public void testFocusedArePresent() throws MalformedURLException, SAXException, IOException {
        WebConversation conversation = new WebConversation();
        WebResponse response = conversation.getResponse(BASE + "template=Sample");
        HTMLElement[] focused = response.getElementsWithAttribute("class", "focused");
        assertTrue(focused.length > 0);
    }
}

我希望有所帮助。

1 个答案:

答案 0 :(得分:0)

getElementsWithAttribute适合我。或者,您可以尝试迭代DOM,查找具有指定类属性的元素。以下是一些示例代码:

    Document doc = response.getDOM();
    List<Node> result = new ArrayList<Node>();
    NodeList list = doc.getElementsByTagName("*");
    for(int i = 0 ; i < list.getLength() ; i++){
        Node n = list.item(i).getAttributes().getNamedItem("class");
        if(n!=null && "focused".equals(n.getNodeValue())){
            result.add(n); 
        }
    }