2016-09-03 6 views
0

Я создаю небольшой скрипт в java для проверки номеров iPhone IMEI. Существует этот сайт от Apple: https://appleonlinefra.mpxltd.co.uk/search.aspxзаполните форму в динамической странице asp с htmlunit

Вы должны ввести номер IMEI. Если это число нормально, это ведет вас к этой странице: https://appleonlinefra.mpxltd.co.uk/Inspection.aspx Else, вы остаетесь на /search.aspx страницы Я хочу, чтобы открыть страницу поиска введите IMEI, подать, и проверить, если URL изменился , В моем коде есть рабочий номер IMEI.

Вот мой Java-код:

HtmlPage page = webClient.getPage("https://appleonlinefra.mpxltd.co.uk/search.aspx"); 

HtmlTextInput imei_input = (HtmlTextInput)page.getElementById("ctl00_ContentPlaceHolder1_txtIMEIVal"); 

imei_input.setValueAttribute("012534008614194"); 

//HtmlAnchor check_imei = page.getAnchorByText("Rechercher"); 
//Tried with both ways of getting the anchor, none works 

HtmlAnchor anchor1 = (HtmlAnchor)page.getElementById("ctl00_ContentPlaceHolder1_imeiValidate"); 
page = anchor1.click(); 

System.out.println(page.getUrl()); 

Я не могу выяснить, откуда приходит, так как я часто использую HtmlUnit для этого и я никогда не имел этот вопрос. Может быть, из-за небольшого времени загрузки после отправки?

Спасибо заранее

ответ

0

Вы можете сделать это с помощью оболочки соединения, что HtmlUnit обеспечивает

Вот пример

new WebConnectionWrapper(webClient) { 

     public WebResponse getResponse(WebRequest request) throws IOException { 
      WebResponse response = super.getResponse(request); 
      if (request.getUrl().toExternalForm().contains("Inspection.aspx")) { 
       String content = response.getContentAsString("UTF-8"); 

       WebResponseData data = new WebResponseData(content.getBytes("UTF-8"), response.getStatusCode(), 
         response.getStatusMessage(), response.getResponseHeaders()); 
       response = new WebResponse(data, request, response.getLoadTime()); 
      } 
      return response; 
     } 
    }; 

С соединительной оболочки выше, вы можете проверить любой запрос и ответ, который проходит через HTMLUnit

+0

Пробовал найти документацию о оболочке подключения, мне трудно понять ее, а также ваш код. Я пытаюсь приспособить его к моей ситуации, но я не могу узнать, что делать – saperlipopette

+0

, вы решили решить эту проблему? – Arya