Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm attempting to drive my user interface (heavy on javascript) through selenium. I've already tested the rest of my ajax interaction with selenium successfully. However, this one particular method seems to be eluding me because I can't seem to fake the correct click event. I could solve this problem by simply waiting in the test for the user to click a point and then continuing with the test but this seems like a cop out. But I'm really running out of time on my deadline to have this done and working. Should I just get this done and move on or should I spend the extra (unknown) amount of time to fix this problem and be able to have my selenium tests 100% automated?

share|improve this question

3 Answers 3

up vote 10 down vote accepted

If the tests aren't 100% automated, they lose a tremendous amount of value. They won't be run reliably, and are a lot more error prone because of the human interaction. If you can't get it 100% automated, remove that test completely, even if it means not testing that piece of functionality for now.

As an aside, have you asked for help on stackoverflow? They may be able to give you a fairly quick solution.

share|improve this answer
1  
Also, the people over at the User Experience site might be able to help. I often see Selenium related posts there. –  Benjamin Kloster Jun 20 '12 at 13:11
2  
+1 for removing automated tests that aren't automated. Also, the fine folks over at sta.stackexchange have a little (well, a lot of experience) with Selenium (and most other test automation libraries). –  Lyndon Vrooman Jun 20 '12 at 13:47
1  
Note there's a special site in SE (although still in beta) that is related to this in particular: Software Quality Assurance and testing –  K.Steff Jun 20 '12 at 15:04

Try to find all possible workarounds.
And if nothing works classify them as non-automatable tests with proper blocker documentation. Maybe in future versions of selenium (or you application) you get some workaround for the step.

share|improve this answer

I've seen that "wait for the user to do something" technique done. It's a bad idea, for a lot of different reasons, but it can be made to work in a limited context. If you do it, obviously you don't have an automated test, but rather one that requires active human observation and interaction. Which means you can't run it as part of a Continuous Integration process, you probably won't want to run it as part of an in-the-background unit-test collection, etc.

If you decide to do this anyway, the correct way to do it is to alert the user that their action is required, and to then wait (looping with pauses as necessary) for the correct result of their action. As opposed to waiting for a few minutes and hoping they did their piece of the job.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.