带有P:日历的SendKeys不会从一个运行到另一个运行中产生可靠的结果



我正在使用硒来填充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';");

请让我知道是否解决了问题。

最新更新