我正在使用硒来填充p:日历字段。我不使用日期选择器,而是直接将密钥发送到字段。
webDriver.findElement(By.id("theId").sendKeys("06031984");
在此之前和之后,我正在与页面上的其他各种元素进行互动。每次运行,我都会得到不同的值出现在我的日期输入字段中 - 这些很少是正确的:
- 40.60.3198
- 98.40.6031
- 06.03.1984< - 正确
键的顺序似乎正在移动,可能是由p:calendar:
中的ajax调用<p:calendar id="theId" styleClass="date-input"
binding="#{date}" navigator="true"
value="#{aView.date}"
validator="dateValidator"
yearRange="#{validatorService.dateRange}"
pattern="dd.MM.yyyy" mask="99.99.9999" readonlyInput="false"
readonly="false" required="true" showOn="button"
requiredMessage="#{i18n['aMsg']}"
locale="de">
<p:ajax event="dateSelect"
update="many elements"
oncomplete="updateTabbing();" />
<p:ajax event="change"
update="many elements"
oncomplete="updateTabbing();" />
</p:calendar>
有没有办法确保正确的值结束在现场?到目前为止,我发现使用Selenium(和JSF页面)有点麻烦。
我们可以尝试添加一些等待并发送选项卡键
或为该值注入Java脚本将解决此问题
driver.manage()。timeouts()。隐式加特(60,timeunit.seconds);
javascriptexecutor js =(JavasCriptexecutor)驱动程序;js.executescript(" document.getElementsById('theid')。值= '06 .03.1984';");
请让我知道是否解决了问题。