只能支持IE的应用程序,我必须执行屏幕抓取。我尝试过htmlUnit和selenium htmlUnit驱动程序,这对我来说没有用。我想知道,java浏览器中是否有可用的无头浏览器api。请告诉我。
答案 0 :(得分:1)
您可以查看JExplorer Java库,该库允许将MS IE Web浏览器控件嵌入到Java AWT / Swing应用程序中,并直接从Java代码中使用MS IE功能。
例如:
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");
}
}