Я бы предложил сделать логическую проверку, как предложил PGCodeRider. Вот моя предложенная функция
Public Function IsGoodTime(ByVal strInString As String) As Boolean
Dim blnOut As Boolean
Dim intPos As Integer
Dim strTemp As String
Dim strLeft As String
Dim strRight As String
Dim intLeft As Integer
Dim intRight As Integer
blnOut = True
strTemp = Trim(strInString)
intPos = InStr(1, strTemp, ":")
If intPos > 0 Then
strLeft = Mid(strTemp, 1, intPos - 1)
strRight = Mid(strTemp, intPos + 1, Len(strTemp))
Else
strRight = Right(strTemp, 2)
strLeft = Mid(strTemp, 1, Len(strTemp) - 2)
End If
intLeft = 0
intRight = 0
If IsNumeric(strLeft) Then intLeft = CInt(strLeft)
If IsNumeric(strRight) Then intRight = CInt(strRight)
If (Not ((intLeft > 0) And (intLeft < 13))) Then blnOut = False
If (Not ((intRight > 0) And (intRight < 60))) Then blnOut = False
IsGoodTime = blnOut
End Function
Это - трудная проблема, потому что или необходимо перепроектировать JavaScript на основе на сайт, или реализовать механизм JavaScript и запустить скрипты (который испытывает его собственные затруднения и ловушки).
Это - тяжелое решение для веса, но я видел, что люди делают, это со сценариями механика - позволяет Firefox представлять все и запускать JavaScript и затем очищать элементы. Можно даже инициировать пользовательские действия на странице в случае необходимости.
- Adam
Лучшее решение, которое я нашел, состояло в том, чтобы использовать Firebug, чтобы контролировать XmlHttpRequests и затем использовать сценарий для повторной отправки их.
IDE селена, инструмент для тестирования, является чем-то, что я использовал для большого анализа экранных данных. Существует несколько вещей, которые это не обрабатывает хорошо (JavaScript window.alert () и всплывающие окна в целом), но это делает свою работу на странице путем фактического инициирования событий щелчка и ввода в текстовые поля. Поскольку часть IDE работает в Firefox, Вы не должны делать всего управления сессиями, и т.д. поскольку Firefox заботится о нем. IDE записывает и воспроизводит тесты.
Это также экспортирует C#, PHP, Java, и т.д. кодируют для создания скомпилированных тестов/скребков, которые выполняются на сервере Селена. Я сделал это для больше, чем нескольких моих сценариев Селена, которое делает вещи как то, чтобы хранить очищенные данные в базе данных намного легче.
Сценарии довольно просты записать и измениться, будучи составленным из вещей как ("clickAndWait", "submitButton"). Стоящий взгляда, данного, что Вы описываете.
Совет Adam Davis является основательным.
Я дополнительно предложил бы, чтобы Вы попытались "перепроектировать" то, что JavaScript делает, и вместо того, чтобы пытаться очистить страницу, Вы выпускаете Запросы HTTP, которые выпускает JavaScript, и интерпретируйте результаты сами (скорее всего, в формате JSON, хорошем и легком проанализировать). Эта стратегия могла быть чем-либо от тривиального до общего кошмара, в зависимости от сложности JavaScript.
Лучшая возможность, конечно, состояла бы в том, чтобы убедить специалистов по обслуживанию веб-сайта реализовывать благоприятный для разработчика API. Все спокойные дети делают его в эти дни 8-) Конечно, они не могли бы хотеть свои данные, очищенные автоматизированным способом..., в этом случае можно ожидать игру кошки-мышки создания их страницы, все больше трудной очищать :-(
Существует определенная кривая обучения, но инструменты как Pamie (Python) или Watir (Ruby) позволят Вам фиксироваться в веб-браузер IE и достигнуть элементы. Это оказывается легче, чем Механизируют и другие инструменты уровня HTTP, так как Вы не должны эмулировать браузер, Вы просто просите у браузера элементы HTML. И это будет путем, легче, чем инженерный анализ вызовов Javascript/Ajax. В случае необходимости можно также использовать инструменты как красивый суп в сочетании с Pamie.
Вероятно, самый легкий путь состоит в том, чтобы использовать IE webbrowser управление в C# (или любой другой язык). У Вас есть доступ ко всему материалу в браузере из поля +, Вы не должны заботиться о cookie, SSL и так далее.
Это кажется, что это - довольно типичная проблема. Интересно, почему у кого-то нет никого, разработал программный браузер? Я предполагаю Firefox, который можно назвать из командной строки с URL как аргумент, и она загрузит страницу, выполнит все начальные события JS загрузки страницы и сохранит получающийся файл.
Я имею в виду Firefox, и другие браузеры уже делают это, почему мы не можем просто снять изоляцию с материала UI?
я нашел, что управление Webbrowser IE имеет все виды причуд и обходных решений, которые выровняли бы по ширине некоторое высококачественное программное обеспечение, чтобы заботиться обо всех тех несоответствиях, разделенных на уровни вокруг API shvwdoc.dll и mshtml и служить основой.