我找到了SWT Browser
部件的非常怪異的行爲:瀏覽器#的getText()返回空字符串
@Test
public void test() throws Exception {
Shell shell = new Shell();
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("Hello World!");
shell.open();
Assert.assertEquals("Hello World!", browser.getText());
}
這個測試失敗,因爲Browser#getText()
返回一個空字符串。
An other question表明,它可能是因爲Browser
仍在加載的頁面,但使用setText
不會觸發加載(因爲HTML已經存在),以及ProgressListener
不會被調用,無論是。
JavaDoc說:返回一個帶有HTML的字符串,表示當前頁面的內容。由於某種原因沒有關於返回空字符串。
如何獲取瀏覽器的文本? (我需要它爲測試條件下像上面的,所以「等待」爲Browser
部件是出了問題。我不知道,將工作無論哪種方式。)
'Display#readAndDispatch()'使它工作,只要'Display#sleep()'沒有被調用。 (我從來沒有得到瀏覽器的內容,這就是爲什麼我從來沒有意識到結果字符串會有HTML標籤。) –