一、經常使用函數addLoadListener,包含對頁面加載狀態的多種監控回調。app
browser.addLoadListener(new LoadAdapter() { @Override public void onStartLoadingFrame(StartLoadingEvent event) { if (event.isMainFrame()) { System.out.println("Main frame has started loading"); } } @Override public void onProvisionalLoadingFrame(ProvisionalLoadingEvent event) { if (event.isMainFrame()) { System.out.println("Provisional load was committed for a frame"); } } @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { System.out.println("Main frame has finished loading"); } } @Override public void onFailLoadingFrame(FailLoadingEvent event) { NetError errorCode = event.getErrorCode(); if (event.isMainFrame()) { System.out.println("Main frame has failed loading: " + errorCode); } } @Override public void onDocumentLoadedInFrame(FrameLoadEvent event) { System.out.println("Frame document is loaded."); } @Override public void onDocumentLoadedInMainFrame(LoadEvent event) { System.out.println("Main frame document is loaded."); } });
2.實驗代碼(爲了節省展現代碼,去掉了一些null判斷)ide
①在baidu的輸入框中填寫咱們本身的輸入數據函數
browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { //String url = event.getValidatedURL(); //能夠使用getValidatedURL過濾處理特定的url
if (event.isMainFrame()) { DOMDocument doc = event.getBrowser().getDocument(); DOMElement kwInput = doc.findElement(By.id("kw")); //找到對應的輸入框元素(這裏的By類提供了多種查找的方式)
kwInput.setAttribute("value", "JxBrowser"); //在輸入框中輸入JxBrowser
} } });
效果以下:測試
②增長一個咱們本身的按鈕url
browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { //String url = event.getValidatedURL(); //能夠使用getValidatedURL過濾處理特定的url
if (event.isMainFrame()) { DOMDocument doc = event.getBrowser().getDocument(); DOMElement ele = doc.findElement(By.id("form"));//找到對應的表單
DOMElement btn = doc.createElement("button");//加入一個測試按鈕
btn.setInnerText("測試"); ele.appendChild(btn); } } });
效果以下:spa
③模擬點擊"百度一下"按鈕code
browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { //String url = event.getValidatedURL(); //能夠使用getValidatedURL過濾處理特定的url
if (event.isMainFrame()) { DOMDocument doc = event.getBrowser().getDocument(); DOMElement baiduBtn = doc.findElement(By.id("su"));//找到對應的按鈕
baiduBtn.click(); //模擬點擊
} } });
你會發現網頁一直閃爍,由於模擬點擊一下,從新刷了一次頁面,又再次進入了這個函數。orm
以上。blog