2016-10-19 2 views
2

Приложение, которое может поддерживать только IE, и я должен сделать скребок экрана. Я пробовал драйвер htmlUnit и selenium htmlUnit, который не сработал для меня. Я хочу знать, есть ли без браузера браузер api в java для браузера IE. Пожалуйста, дайте мне знать.Безглавой браузер для Internet Explorer в java

ответ

1

Вы можете взглянуть на библиотеку Java JExplorer Java, которая позволяет встраивать управление веб-браузером MS IE в приложение Java AWT/Swing и использовать функции 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