phantom.create() and then the createPage() are async. That means that by 
the time the interpreter gets to the module.exports section, your _page is 
stil not bound. It only fired a phantom.create, and it's still waiting for 
its callback and phantom.createPage callback. You could probably add a 
console.log('Creating exports') just above creating module.exports and I 
bet that one would be shown before the other two log lines.

Now, you would have to defer creating the exports, or at least put page in 
something like `var locals = {page: <placeholder>}`, and then calling it as 
locals.page.open() later. I think something like that would work.

On Thursday, March 19, 2015 at 9:39:36 PM UTC+1, CoffeeManiac wrote:
>
> I can't figure out why I lose the object instance for my variable _page 
> once it gets inside the function for the module.exports.  It bombs out here 
> because _page is undefined but it's fine and has an instance BEFORE this 
> _page.open 
>
> var phantom = require('phantom'), _ph, _page;
> var should = require('chai').should();
>
> phantom.create("--web-security=no", "--ignore-ssl-errors=yes", { port: 12345 
> }, function (ph) {
>     console.log("Phantom Bridge Initiated");
>     _ph = ph;
>
>     _ph.createPage(function(page) {
>         console.log("Page created!");
>         _page = page;
>     });
>
>     phaçntom.exit();
> });
>
>
> module.exports = function() {
>     "use strict";
>
>     this.Given(/^I visit the episodes display page$/, function (callback) {
>
>         console.log("_page: " + _page);
>         _page.open("/", function(status){
>
>             status.should.equal("success");
>         });
>
>         callback();
>
>     });
>
>
>     this.Then(/^I should not see any episodes listed$/, function (callback) {
>         //page.should.have.content("There are no episodes available");
>
>         callback.pending();
>     });
>
>
>
>     this.Given(/^there are some episodes to view$/, function (callback) {
>         // Write code here that turns the phrase above into concrete actions
>         callback.pending();
>     });
>
>     this.When(/^I go to the episodes display page$/, function (callback) {
>         // Write code here that turns the phrase above into concrete actions
>         callback.pending();
>     });
>
>     this.Then(/^I should see a list of episodes grouped by Topic$/, function 
> (callback) {
>         // Write code here that turns the phrase above into concrete actions
>         callback.pending();
>     });
>
>
> };
>
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" 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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/dcb07f98-06e6-4603-b8fe-61da7a66dcc8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to