I want to login to ORKUT through a java progrram without involving IE or Firefox,
I am using HTMLUnit for this in the following manner:
import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; public class HtmlUnit { public void submittingForm() throws Exception { final WebClient webClient = new WebClient(); // Get the first page final HtmlPage page1 = webClient.getPage("https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false"); System.out.println("Page1: " + page1.toString()); // Get the form that we are dealing with and within that form, // find the submit button and the field that we want to change. final HtmlSubmitInput button = page1.getElementByName("signIn"); final HtmlTextInput userName = page1.getElementByName("Email"); final HtmlPasswordInput password = page1.getElementByName("Passwd"); // Change the value of the text field userName.setValueAttribute("username"); password.setValueAttribute("password"); // Now submit the form by clicking the button and get back the second page. final HtmlPage page2 = button.click(); System.out.println("Page2: " + page2.toString()); } public static void main(String[] args) { try { new HtmlUnit().submittingForm(); }catch(Exception ex) { ex.printStackTrace(); } } }
But after running the above program, I got the following error:
Page1: HtmlPage(https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false)@6011238 Sep 15, 2009 4:54:37 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/js/gen/in_frame046.js', but got 'application/x-javascript'. Sep 15, 2009 4:54:38 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/js/gen/gtalk_client031.js', but got 'application/x-javascript'. Sep 15, 2009 4:54:38 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/ifpc/ifpc.js', but got 'application/x-javascript'. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.rehashTable(ObjToIntMap.java:330) at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.ensureIndex(ObjToIntMap.java:415) at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.intern(ObjToIntMap.java:197) at net.sourceforge.htmlunit.corejs.javascript.TokenStream.getToken (TokenStream.java:435) at net.sourceforge.htmlunit.corejs.javascript.Parser.peekToken(Parser.java:313) at net.sourceforge.htmlunit.corejs.javascript.Parser.variables(Parser.java:1791) at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper (Parser.java:959) at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:877) at net.sourceforge.htmlunit.corejs.javascript.Parser.parse(Parser.java:549) at net.sourceforge.htmlunit.corejs.javascript.Parser.parse(Parser.java:492) at net.sourceforge.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2404) at net.sourceforge.htmlunit.corejs.javascript.Context.compileString(Context.java:1375) at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:173) at net.sourceforge.htmlunit.corejs.javascript.Context.compileString(Context.java:1364) at com.gargoylesoftware.htmlunit.javascript.host.Window.custom_eval(Window.java:1143) at com.gargoylesoftware.htmlunit.javascript.host.Window.jsxFunction_execScript(Window.java:1122) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at net.sourceforge.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:161) at net.sourceforge.htmlunit.corejs.javascript.FunctionObject.call(FunctionObject.java:476) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1688) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:845) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:427) at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:263) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3058) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$5.doRun(JavaScriptEngine.java:415) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:520) at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)
So, I don't understand where the problem is. The error occurs while executing the following line:
final HtmlPage page2 = button.click();