내가하려는 것은 웹 사이트로 이동하여 두 개의 드롭 다운 목록에서 항목을 선택하고 상자에 무언가를 입력 한 다음 버튼을 누릅니다. 그런 다음 입력 할 수없는 상자에 결과 텍스트를 표시하려고합니다.HtmlUnit을 사용하면 긴 오류 목록이 생성됩니다.
사용하려는 사이트는 http://www.worldlingo.com/en/products_services/worldlingo_translator.html이고 여기는 내가 얻으려고하는 모든 것을 수행하는 코드입니다 마지막 텍스트 (아직 어떻게 해야할지 모르겠다).
try {
final WebClient webClient = new WebClient();
Page page = webClient.getPage("http://www.worldlingo.com/en/products_services/worldlingo_translator.html");
HtmlSelect select = ((HtmlSelect) page).getElementById("SelSrcLang");
HtmlOption option = select.getOptionByValue("English");
select.setSelectedAttribute(option, true);
HtmlSelect select2 = ((HtmlSelect) page).getElementById("SelTrgLang");
HtmlOption option2 = select2.getOptionByValue("French");
select.setSelectedAttribute(option2, true);
final HtmlForm form = ((HtmlPage) page).getFormByName("form");
final HtmlSubmitInput button = form.getInputByName("Translate");
final HtmlTextInput textField = form.getInputByName("wl_ft_print_text");
textField.setValueAttribute("How are you?");
page = (HtmlPage) form.getInputByValue("Translate").click();
System.out.println("Finished");
} catch (FailingHttpStatusCodeException e) { } catch (MalformedURLException e) { } catch (IOException e) { }
편집 : 변경 한 후
Page page = webCLient...
HtmlPage page = webCLient...
에 나는 오류를 얻을하지만 난 실행할 때 나는 "다음과 같은 오류를 주를 스레드에서
예외를 얻을 "com.gargoylesoftware.htmlunit.ElementNotFoundException : elementName = [op 기] 여기서 attributeName = 값]의 AttributeValue = [영문] com.gargoylesoftware.htmlunit.html.HtmlSelect.getOptionByValue에서 (HtmlSelect.java:437) maple.Main.main에서 (Main.java:43)
선 (43) 얘기하고있는 "오류"의
HtmlOption option = select.getOptionByValue("English");
나는 그것이 오류 "방법에서 getElementById (문자열) 유형 페이지에 정의되지 않은이 있다고 하더군요 (실제로 라인 42 인) 라인을 변경하는 경우 "해결 방법은"괄호 주위에 괄호 추가 "입니다. – user2612619
당신이 사용하고있는 IDE (이클립스)는 오류를 추측하기 위해 최선을 다하고 있습니다. 그러나, 그들은 항상 옳지 않습니다. 이 오류는 JavaDoc을 읽을 때 분명합니다. 답변을 업데이트했습니다. –
그래서 그 페이지를 사용할 수 없거나 다른 방법이 있습니까? – user2612619