zoukankan      html  css  js  c++  java
  • HtmlUnit: A Simple Example: Check Yahoo Email---转载

    1. src http://www.muneebahmad.com/index.php/archives/81

    package com.examples.htmlunit;
    
    import java.io.IOException;
    import java.net.URL;
    import java.util.List;
    
    import com.gargoylesoftware.htmlunit.BrowserVersion;
    import com.gargoylesoftware.htmlunit.Page;
    import com.gargoylesoftware.htmlunit.RefreshHandler;
    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
    import com.gargoylesoftware.htmlunit.html.HtmlForm;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;
    import com.gargoylesoftware.htmlunit.html.HtmlTable;
    import com.gargoylesoftware.htmlunit.html.HtmlTableRow;
    
    public class YahooMail {
    
        public static void main(String[] args) throws Exception {
    
            // Create and initialize WebClient object
            WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);
            webClient.setThrowExceptionOnScriptError(false);
            webClient.setRefreshHandler(new RefreshHandler() {
                public void handleRefresh(Page page, URL url, int arg) throws IOException {
                    System.out.println("handleRefresh");
                }
    
            });
    
            // visit Yahoo Mail login page and get the Form object
            HtmlPage page = (HtmlPage) webClient.getPage("https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym");
            HtmlForm form = page.getFormByName("login_form");
    
            // Enter login and passwd
            form.getInputByName("login").setValueAttribute("@@@@@@@");
            form.getInputByName("passwd").setValueAttribute("@@@@@@@");
    
            // Click "Sign In" button/link
            page = (HtmlPage) form.getInputByValue("Sign In").click();
    
            // Click "Inbox" link
            HtmlAnchor anchor = (HtmlAnchor) page.getHtmlElementById("WelcomeInboxFolderLink");
            page = (HtmlPage) anchor.click();
    
            // Get the table object containing the mails
            HtmlTable dataTable = (HtmlTable) page.getHtmlElementById("datatable");
    
            // Go through each row and count the row with class=msgnew
            int newMessageCount = 0;
            List rows = (List) dataTable.getHtmlElementsByTagName("tr");
            for (HtmlTableRow row: rows) {
                if (row.getAttribute("class").equals("msgnew")) {
                    newMessageCount++;
                }
            }        
    
            // Print the newMessageCount to screen
            System.out.println("newMessageCount = " + newMessageCount);
    
            //System.out.println(page.asXml());                        
    
        }
  • 相关阅读:
    linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件
    hook(v16.7测试)?
    React优点?
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    说说数据库连接池工作原理和实现方案?
    short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    Oracle的数据优化(经常被问到)?
    存储过程和函数的区别?
    Collection 和 Collections的区别?
    说说数据库连接池工作原理和实现方案?
  • 原文地址:https://www.cnblogs.com/davidwang456/p/3448240.html
Copyright © 2011-2022 走看看