JSF Richfaces文件上传测试由HtmlUnit完成

JSF Richfaces文件上传测试由HtmlUnit完成,jsf,richfaces,htmlunit,Jsf,Richfaces,Htmlunit,我的问题是如何通过HtmlUnit测试Richfaces文件上传 我的html页面代码如下所示: 上载文件: 添加 我的java htmlunit测试代码如下: 在本例中,我得到以下异常: com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[*] attributeName=[name] attributeValue=[rf-fu-inp] 我的主要问题是我在输入元素上没有id,否则我就有机会做出类似的东西

我的问题是如何通过HtmlUnit测试Richfaces文件上传

我的html页面代码如下所示:

上载文件: 添加 我的java htmlunit测试代码如下:

在本例中,我得到以下异常:

com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[*] attributeName=[name] attributeValue=[rf-fu-inp]
我的主要问题是我在输入元素上没有id,否则我就有机会做出类似的东西

 HtmlFileInput fileUpload = (HtmlFileInput) page.getElementById("rf-fu-inp");
那么:

page.getByXPath("//*[@class='rf-fu-inp']")
这意味着:通过XPath查找根元素//中的所有标记名“*”,属性类的值为rf fu inp

请在和HtmlUnit中阅读更多内容,我找到了一个解决方案:

//高地风 HtmlFileInput HtmlFileInput=null; DomNodeList inputs=page.getElementsByTagNameinput; 对于DomeElement:输入{ 如果是DomeElement.getAttributeclass.equalsrf-fu-inp&& doElement.getAttributetype.equalFile{ htmlFileInput=htmlFileInput-DoElement; htmlFileInput.setValueAttributeSystem.getPropertybasedir+FILEPATHCURRENTXML; 打破 }
}除了byName和byId没有其他getter?我搜索了richfaces fileupload setters name和id,但它们不适用于无法回答问题的。好的,是的,对不起,你是对的。我再看一次,这两个获得者似乎是唯一的获得元素的获得者…介意一点吗?
page.getByXPath("//*[@class='rf-fu-inp']")