Я использую селен, чтобы заполнить поле p: calendar. Вместо использования выбора даты, Я посылаю ключи непосредственно в поле.sendKeys с p: calendar не дает достоверных результатов от одного прогона к другому
webDriver.findElement(By.id("theId").sendKeys("06031984");
До и после этого, я взаимодействия с различными другими элементами на странице. При каждом запуске, я получаю различные значения появляется в моем поле ввода даты - и редко их правильные:
- 40.60.3198
- 98.40.6031
- 06.03.1984 < - Корректные
порядок ключей, кажется, сдвигается, вероятно Аякса вызовов в р: календарь:
<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), чтобы быть немного хлопот.
Я уже пробовал ждать и вкладки, но это не сработало. Идея Javascript хорошая, однако я получаю эту ошибку: org.openqa.selenium.WebDriverException: неизвестная ошибка: document.getElementsByid не является функцией – Tim
Я изменил JavaScript на это, и теперь он работает: js.executeScript («document. getElementById ('theId'). value = '06 .03.1984 '; "); Просто отредактируйте свой ответ, и я приму его. – Tim
Спасибо Тиму, я начал сегодня вкладывать в StackoverFlow. рад, что я мог найти какое-то решение ура -Dharam – Dharam