【发布时间】:2010-12-14 11:36:37
【问题描述】:
我在 JSF2.0 中有一些页面需要验证字段。这是跨字段验证,所以我将字段绑定到 UIComponents。这三个字段都是<h:inputText>,所以都绑定到HtmlInputText。
验证方法只是从所有HtmlInputTexts 中读取值。当我运行应用程序并手动使用它时,它工作得很好。问题是当 selenium 输入值时它不起作用。 selenium 代码的一部分是:
selenium.type("identifier=myForm:myTextField", "someText");
所以它将文本输入到文本字段中。它有效,我可以看到文本确实存在。但是当我调试从 UIComponents 读取值的验证方法时,单击“提交”后该值为null。手动输入时不是null,只有selenium输入。
这是为什么呢?为什么硒不起作用?它和我手工做的差不多,但它是手工工作的,对 selenium 不起作用。
【问题讨论】:
-
我从来没有遇到过这样的 Selenium 问题。您似乎在暗示这是特定于使用
binding的组件。那么,无绑定的输入字段是否可以正常工作?模型值是否已更新?是否调用了 bean 操作方法?是否有一些f:ajax参与?无论如何,您的<h:form>、相关托管 bean 代码和生成的 JUnit/TestNG@Test方法的最小可能摘录会有所帮助,以便我们可以尝试重现问题和/或更好地发现错误。 -
谢谢@BalusC。我发现了问题,并在我的下一个问题中进行了描述:stackoverflow.com/questions/4439716 问题是当隐藏字段在我要验证的字段之前的页面中时。
-
这究竟是硒的问题?这个隐藏字段是JS填充的吗?