我是 JSFUnit 和相关技术的初学者。我想知道:是否可以在不创建新的 JSFSession 对象的情况下更改 url?即我想模拟用户在他/她的地址栏中输入新地址的情况。
附加信息
问题是我的 facelets 页面中有很多链接,因为它们是在 ui:repeat 元素中创建的,所以无法分配 id。
解决方法
使用 cookie 恢复不同 JSFSession 之间的会话
当然。
您可以在 xhtml/jsp 页面中有一个按钮。此按钮将指向请求的页面。
例如,如果你有登录页面,并且用户想去测试页面,那么在你的 JSFUnit 中写:
jsfSession = new JSFSession("start.jsf");
client = jsfSession.getJSFClientSession();
client.click("Login");
并且在start.jsf
页面中有:
<h:form>
<h:commandButton id = "Login" value="Login" action="#{loginBean.doLogin}"/>
</h:form>
在你的哪里loginBean
public void doLogin(){
return "test.jsf";
}
通过这种方式,您可以为用户模拟相同的会话。