New Reply

Retrieve Browser state information(Java)

 
Share Thread Thread Tools
Jul19-12, 10:15 PM   #1
 

Retrieve Browser state information(Java)


I'm working on a program that automatically fills forms out on a website for work. It uses the tab key to navigate the page to the different fields. However I do not know how to make it pause for the browser to load the page other than hardcoding some time into it. Is there a way to determine when the browser has finished loading a page in java? For example if the program fills out a page and needs to navigate to the next page, I would like it to wait until the browser is finished loading the next page before continuing to populate fields without having to use some set time. This is important because some page navigations are variable and take up to a few minutes.

Also if some fields do not fit the specifications of the website then a message will pop up informing the user that the data entered into the fields is invalid. Is there a way to set some sort of listener for if this happens? I would like to make the program pause and wait for user input when this happens. I just do not know how to determing when this occurs.
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Bird's playlist could signal mental strengths and weaknesses
>> Minus environment, patterns still emerge: Computational study tracks E. coli cells' regulatory mechanisms
>> Bacterium uses natural 'thermometer' to trigger diarrheal disease, scientists find
Jul19-12, 10:20 PM   #2
 
Recognitions:
Gold Membership Gold Member
Typically for something like this I'd use a browser plugin called Greasemonkey, javascript has all the browser event handlers you're looking for.
Jul19-12, 10:39 PM   #3
 
Quote by DavidSnider View Post
Typically for something like this I'd use a browser plugin called Greasemonkey, javascript has all the browser event handlers you're looking for.
I'd prefer to keep it within the program just for sake of ease and so that others could use it without a hassle. Do you know of a way to include the capabilities mentioned in my original post without having to use another program/plugin?
Jul19-12, 11:08 PM   #4
 

Retrieve Browser state information(Java)


Have you taken DavidSnider's advice and looked at the event handlers available to you?
Jul20-12, 09:19 AM   #5
 
He said that javascript had those event handlers. Is there a way to include javascript commands or classes in a java program?
Jul20-12, 10:07 PM   #6
 
Recognitions:
Gold Membership Gold Member
What libraries\frameworks are you using to populate the fields right now? How much control do you have over the website you're entering the data into?

I don't really know the details of your program so it's kind of hard to make a suggestion.

Using an external program to fill out form fields in a browser seems kind of kludgey to me (no offense. sometimes there is no choice, I understand).

Another way to go is to forgo the browser bit all together and just craft your own HTTP Requests and parse the responses.
Jul22-12, 05:38 PM   #7
 
I've actually been filling the forms using the robot class to simulate key presses, I know its not the best way but I am not familiar with scripts and I wanted it to work with all page types, the program we use now does not work with flash and I want to avoid anything like that popping up. I have it about completed and all I really need to do is put in a while loop between the simulated key presses that will only end once the browser is done loading. And an if statement that will pause the program if a popup message appears.
Jul23-12, 07:55 AM   #8
 
Quote by Yoyo_Guru View Post
I'd prefer to keep it within the program just for sake of ease and so that others could use it without a hassle. Do you know of a way to include the capabilities mentioned in my original post without having to use another program/plugin?
No, seriously, don't re-invent the wheel. If there's well known framework or library that does it, USE IT.

This is computer programming, an engineering discipline, not art.

I admit it will take 1 day or so to read the API and learn how it works but you will save a whole boatload of trouble designing and testing your own libraries. Why do you use the system date function instead of computing the day of the week by yourself given the date?
Jul23-12, 09:14 AM   #9
 
Quote by rorix_bw View Post
No, seriously, don't re-invent the wheel. If there's well known framework or library that does it, USE IT.

This is computer programming, an engineering discipline, not art.

I admit it will take 1 day or so to read the API and learn how it works but you will save a whole boatload of trouble designing and testing your own libraries. Why do you use the system date function instead of computing the day of the week by yourself given the date?
Well I'm already done with most of the code, and I was using a pause for the webpage to load before but thats not the most efficient way. Just don't want to have to start all over again. If I did make a seperate javascript program would I be able to have the two communicate or run methods from the java program in the javascript or something along those lines?
Jul23-12, 09:30 AM   #10
 
window.onload = function () { alert("It's loaded!") }
Jul23-12, 11:00 PM   #11
 
Quote by rorix_bw View Post
window.onload = function () { alert("It's loaded!") }
I don't want to alert the user, I want to alert the program, the point is for it to be completely automated without the need for user input once the automation has begun, the user just has to set it up.
Jul24-12, 07:20 AM   #12
 
Quote by Yoyo_Guru View Post
I don't want to alert the user, I want to alert the program
Change the body of the function to be your code, not the popup.

BTW `window.onload` is javascript.
Jul24-12, 08:22 AM   #13
 
My code is in java though. I already wrote the majority of the program in java. Can I call methods from the java program in the function?
Jul24-12, 08:35 AM   #14
 
This does far more than you need, it's basically ajax for java

http://directwebremoting.org/dwr/index.html

edit: I am sorry, please ignore this. I'm tired and I'll edit it later. I don't think that;s what you need.

Basically I misread the question and didnt't realise that it wasn't your *own* webpage so you don't have the ability to put javascript into the page source. I'll call a friend, he should know.
Jul24-12, 08:57 AM   #15
 
OK friend says he doesnt know any *simple* way of doing it. With a static page you can do some dirty code to check it, but it's not reliable. He recommends you time out the download after a set interval, then parse the contents of the page to determine if you think it's complete. I am sorry I screwed up and misread the question.
Jul25-12, 09:46 PM   #16
 
Quote by rorix_bw View Post
OK friend says he doesnt know any *simple* way of doing it. With a static page you can do some dirty code to check it, but it's not reliable. He recommends you time out the download after a set interval, then parse the contents of the page to determine if you think it's complete. I am sorry I screwed up and misread the question.
ok. I'm really not familiar with most webpage/website stuff, have not run across a need to use it before. How do I parse the contents of the page in java? What classes would I use for that?
New Reply

Tags
browser, java
Thread Tools


Similar Threads for: Retrieve Browser state information(Java)
Thread Forum Replies
Is there a way to retrieve deleted PM's? Forum Feedback & Announcements 2
How retrieve multiple information by a single number? General Math 4
Coding Language To Sumbit Information To web Browser Programming & Comp Sci 5
BM, initial state and information Quantum Physics 19
Can java applet be as big as the browser window Computing & Technology 2