I have a user enrollment page I am trying to test with a recaptcha 
verification. There is no reasonable way to automate the recaptcha (that is 
its purpose, to prevent automation of the validation process so that bots 
can't access the site) and there is no reasonable way to disable it for 
testing (that's a long story but we can leave it undiscussed for now).  

I decided to do automated testing with a manual "pause" to enter the 
recaptcha verification so that we can test the enrollment process 
semi-automatically.  This 
page https://github.com/angular/protractor/blob/master/docs/debugging.md 
says that you can add "browser.pause();" to a test and you will drop into a 
manual entry mode where you can interact with the page and then continue 
when you are ready (by hitting Ctl-C).  

So here are the essentials of my test (I use page objects, but have 
simplified this to show the direct code in a single file):

*describe("enroll user page", function() {*

*  it("should enroll a user", function() {     
browser.get("http://my.url.com/enroll"**);*

*    element(by.model("enroll.firstName")).sendKeys("Firstname");    *

*    element(by.model("enroll.lastName")).sendKeys("Lastname"); *
*    element(by.model("enroll.email")).sendKeys("[email protected]");    *
*    element(by.model("enroll.password")).sendKeys("pswdpswdpswd");    *
*    browser.pause();    *
*    element(by.css("form[name='enroll'] input[type='submit']")).click();  
  *
*    expect(by.css("div.email")).getText().toContain("[email protected]");*

When I run this -spec file and get to the "browser.pause()" statement, the 
following happens:


*Starting WebDriver debugger in a child process. Pause is still beta, 
please report issues at github.com/angular/protractor*

*------- WebDriver Debugger -------*

*Starting debugger agent.*

*Debugger listening on port 5858 **ready*


*press c to continue to the next webdriver command**press d to continue to 
the next debugger statement*

*type "repl" to enter interactive mode*

*type "exit" to break out of interactive mode*

*press ^C to exit*


*-- Next command: executeScript**ControlFlow::1*

*| Frame::73*

*| | (pending) Task::72<Asynchronous test function: it()>*

*| | | Task: Asynchronous test function: it()*

*| | | Frame::81*

*| | | | Frame::1525*

*| | | | | Frame::384*

*| | | | | | (pending) Task::1539<empty debugger hook>*

*| | | | | | | Task: empty debugger hook*

*| | | | | | |     at Array.forEach (native)*

*| | | | | | | (active) Frame::1545*

*| | | | | | | | Frame::1547*

*| | | | Task::396<Protractor.waitForAngular()>*

*| | | | | Task: Protractor.waitForAngular()*

*| | | | |     at [object Object].<anonymous> 
(/Users/jonrosen/Documents/repo/gyft/gyft-b2b-webapp/test/e2e/enrollment-spec.js:14:69)*

*wd-debug> *

*(^C again to quit)*

*wd-debug>*

At this point, the script pauses and I use the browser to fix the recaptcha 
which seems to work (it checks the box that reads "I am not a bot" and 
everything else looks fine.  I return to the terminal window and type Ctl-C 
(to exit the debugger) and it continues and ultimately prints:

*Exiting debugger.*


*enroll user page**   should enroll a user - fail*


*Failures:**  1) enroll user page should enroll a user*

*   Message:*

*     Timed out waiting for Protractor to synchronize with the page after 
11 seconds. Please see 
https://github.com/angular/protractor/blob/master/docs/faq.md*

*  Stacktrace:*

*     undefined*


*Finished in 56.356 seconds**1 test, 1 assertion, 1 failure*


*[launcher] 0 instance(s) of WebDriver still running*
*[launcher] chrome #1 failed 1 test(s)*
*[launcher] overall: 1 failed spec(s)**[launcher] Process exited with error 
code 1*

*:*

I have tried several variations of this including going into the 
interactive mode with "repl" and then exiting with "exit" after submitting 
the recaptcha, but the same results. I have also tried using "c" to just 
continue to the next statement but I get the same thing.  Apparently 
whenever I interact with the page manually, it somehow unsynchronizes and 
then it fails to sychronize the page after 11 seconds (the standard 
timeout).    

Help! :-)

Jon Rosen

-- 
The information in this message may be proprietary and/or confidential, and 
protected from disclosure. If the reader of this message is not the 
intended recipient, or an employee or agent responsible for delivering this 
message to the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, please notify 
Gyft immediately by replying to this message and deleting it from your 
computer.

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to