Фон
- Я использую htmlUnit для имитации поведения пользователя на определенной странице
- Достигаю страницу входа, на которой мне нужно ввести учетные данные пользователя
Выпуск:
Форма, которую я должен заполнить в деталях, динамически изменяется и выдвигает новые поля ввода со значением, которое изменяется после каждого вставленного символа.
В этом поле ввода есть несколько прослушивателей событий, которые, насколько я смог найти в отладке Chrome, событие нажатия клавиш является наиболее важным для меня, поскольку именно это в конечном итоге генерирует значение обновлений
При загрузке страницы возникают следующие ошибки: [User1st] Произошла ошибка при извлечении кода языка. TypeError: Невозможно вызвать метод "getAttribute" из неопределенного
4.cghjavascript.StrictErrorReporter: runtimeError: message = [Указан неверный или недопустимый селектор (селектор: '*,: x' ошибка: недопустимый селектор: *: x).] sourceName = https: // ???/jquery-1.10.2.min.js] line = [3] lineSource = [null] lineOffset = [0]
некоторый код:
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.waitForBackgroundJavaScript(5000);
final HtmlPage page = webClient.getPage(WEBSITE_URL);
HtmlForm loginForm = page.getFormByName("login");
HtmlTextInput userIdField = loginForm.getInputByName("USERID");
HtmlPasswordInput passwordField = loginForm.getInputByName("USERPASSWORD");
userIdField.type("ID");
passwordField.setText("PASSWORD");
Далее я просто перебираю поля ввода формы и вижу их значение.
Как я могу убедиться, что весь связанный код js действительно выполняется, если таковой имеется?