如何在设置 URL 后从 SWT 中的浏览器获取 HTML
How to get HTML from the browser in SWT after setting the URL
我试过使用
String html = browser.getText();
但是我收到这个错误
Exception in thread "main" org.eclipse.swt.SWTException: Failed to change Variant type result = -2147352571
at org.eclipse.swt.ole.win32.OLE.error(Unknown Source)
at org.eclipse.swt.ole.win32.Variant.getAutomation(Unknown Source)
at org.eclipse.swt.browser.IE.getText(Unknown Source)
at org.eclipse.swt.browser.Browser.getText(Unknown Source)
我已阅读此错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=433526
谁能帮我用其他方法让 HTML 退出浏览器?
您可以强制 SWT 使用另一个浏览器引擎(如果可用)来解决此错误。
例如
Browser browser = new Browser( parent, SWT.WEBKIT );
或
Browser browser = new Browser( parent, SWT.MOZILLA );
但是,问题的根源在于您试图在页面完全加载之前获取页面源。如果没有您提到的错误,SWT 仍然会 return 一个空字符串。
解决方法是监听页面加载完成,然后才要求浏览器 return 页面源。例如:
Browser browser = new Browser( shell, SWT.NONE );
browser.addProgressListener( new ProgressAdapter() {
@Override
public void completed( ProgressEvent event ) {
String text = browser.getText();
// here, text will contain the full page source
}
} );
browser.setUrl( "http://eclipse.org" );
我试过使用
String html = browser.getText();
但是我收到这个错误
Exception in thread "main" org.eclipse.swt.SWTException: Failed to change Variant type result = -2147352571 at org.eclipse.swt.ole.win32.OLE.error(Unknown Source) at org.eclipse.swt.ole.win32.Variant.getAutomation(Unknown Source) at org.eclipse.swt.browser.IE.getText(Unknown Source) at org.eclipse.swt.browser.Browser.getText(Unknown Source)
我已阅读此错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=433526
谁能帮我用其他方法让 HTML 退出浏览器?
您可以强制 SWT 使用另一个浏览器引擎(如果可用)来解决此错误。
例如
Browser browser = new Browser( parent, SWT.WEBKIT );
或
Browser browser = new Browser( parent, SWT.MOZILLA );
但是,问题的根源在于您试图在页面完全加载之前获取页面源。如果没有您提到的错误,SWT 仍然会 return 一个空字符串。
解决方法是监听页面加载完成,然后才要求浏览器 return 页面源。例如:
Browser browser = new Browser( shell, SWT.NONE );
browser.addProgressListener( new ProgressAdapter() {
@Override
public void completed( ProgressEvent event ) {
String text = browser.getText();
// here, text will contain the full page source
}
} );
browser.setUrl( "http://eclipse.org" );