2016-10-19 7 views
2

IE 만 지원할 수있는 응용 프로그램은 화면 긁음을 수행해야합니다. 나는 htmlUnit과 셀레늄 htmlUnit 드라이버를 사용해 보았는데 나에게 도움이되지 못했다. 내가 알고 싶은 것은, 어떤 headless 브라우저 api 자바에서 IE 브라우저에 사용할 수 있습니다. 저에게 알려주세요.자바의 인터넷 익스플로러 용 헤드리스 브라우저

답변

1

JExplorer MS IE 웹 브라우저 컨트롤을 Java AWT/Swing 응용 프로그램에 임베드하고 Java 코드에서 직접 MS IE 기능을 사용할 수있는 Java 라이브러리를 살펴보십시오. 예를 들어

:

import com.teamdev.jexplorer.Browser; 
import com.teamdev.jexplorer.BrowserFeatures; 
import com.teamdev.jexplorer.BrowserMode; 
import com.teamdev.jexplorer.dom.*; 
import com.teamdev.jexplorer.event.NavigationAdapter; 

import javax.swing.*; 
import java.awt.*; 

/** 
* The sample demonstrates how to get all elements with tag A and 
* print their text content. 
*/ 
public class DOMGetElementsSample { 
    public static void main(String[] args) { 
     BrowserFeatures.enableBrowserMode(BrowserMode.IE11); 
     Browser browser = new Browser(); 

     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     frame.add(browser, BorderLayout.CENTER); 
     frame.setSize(800, 600); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 

     browser.addNavigationListener(new NavigationAdapter() { 
      @Override 
      public void mainDocumentCompleted(Browser browser, String url) { 
       DOMDocument document = browser.getDocument(); 
       DOMNodeList elements = document.getElementsByTagName("a"); 
       int length = elements.getLength(); 
       for (int i = 0; i < length; i++) { 
        DOMNode domNode = elements.item(i); 
        if (domNode instanceof DOMElement) { 
         DOMElement element = (DOMElement) domNode; 
         System.out.println("Text Content: " + 
           element.getTextContent()); 
        } 
       } 
      } 
     }); 
     browser.navigate("http://www.google.com"); 
    } 
} 
+0

블라디미르는 내가 JExplorer에 대한 무지입니다, 그래서 내가 한 질문이 있습니다. JExplorer는 브라우저 테스트를 위해 페이지 호출, 양식 기입, 링크 클릭 등을 허용하는 API를 제공합니까? – RCS

+0

예, 웹 페이지를로드하고 완전히로드 될 때까지 기다렸다가 웹 페이지에서 필요한 HTML 요소를 찾거나 HTML 요소를 수정하거나 클릭 할 수 있습니다. – Vladimir