Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

e2e tests not run with PhantomJS #55

Closed
tamascsaba opened this issue Aug 19, 2015 · 7 comments
Closed

e2e tests not run with PhantomJS #55

tamascsaba opened this issue Aug 19, 2015 · 7 comments

Comments

@tamascsaba
Copy link
Contributor

Workflow:

npm run webdriver-start &
npm run express &
npm run e2e

Console only show, tests does not run

Using the selenium server at http://localhost:4444/wd/hub
[launcher] Running 1 instances of WebDriver

I modifyed protractor.conf.js

exports.config = {
  baseUrl: 'http://localhost:8080/',
  capabilities: {
    'browserName': 'phantomjs',
    'phantomjs.binary.path': require('phantomjs').path,
    'phantomjs.ghostdriver.cli.args': ['--loglevel=INFO']
  },
  seleniumAddress: 'http://localhost:4444/wd/hub',
};

@PatrickJS
Copy link
Owner

is this needed after you made your PR? if it's still needed can you make another PR?

@dotcs
Copy link
Contributor

dotcs commented Sep 25, 2015

After #79 has been merged this issue should be fixed. For me npm run e2e runs without any problems now.

@PatrickJS
Copy link
Owner

awesome thanks!

@dotcs
Copy link
Contributor

dotcs commented Sep 25, 2015

Sorry @gdi2290, I think you have to reopen this issue. I have had Chrome in my setup, not phantomjs. The latter indeed makes problems. Unfortunately I have no quick solution, so we have to start over.

@PatrickJS PatrickJS reopened this Sep 25, 2015
@tamascsaba
Copy link
Contributor Author

@dotcs what promles makes PhantomJS Unit tests run?

@dotcs
Copy link
Contributor

dotcs commented Oct 22, 2015

Using the "recommended" config below, I could get the first E2E test to work (which checks the title of the page), but the following tests fail because it seems that PhantomJS does not wait for Angular before running the tests which is why they fail with an InvalidElementStateError [1].

capabilities: {
    'browserName': 'phantomjs',

    /*
     * Can be used to specify the phantomjs binary path.
     * This can generally be ommitted if you installed phantomjs globally.
     */
    'phantomjs.binary.path': require('phantomjs').path,

    /*
     * Command line args to pass to ghostdriver, phantomjs's browser driver.
     * See https://github.com/detro/ghostdriver#faq
     */
    'phantomjs.ghostdriver.cli.args': ['--loglevel=DEBUG']
  },

The linked document absolve also states:

Note: We recommend against using PhantomJS for tests with Protractor. There are many reported issues with PhantomJS crashing and behaving differently from real browsers.

So perhaps we should not use PhantomJS at all for E2E tests.

[1]: Some details on the InvalidElementStateError:

InvalidElementStateError: {"errorMessage":"SYNTAX_ERR: DOM Exception 12","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"59","Content-Type":"application/json; charset=utf-8","Host":"localhost:20091","User-Agent":"Apache-HttpClient/4.4.1 (Java/1.8.0_66)"},"httpVersion":"1.1","method":"POST","post":"{\"using\":\"css selector\",\"value\":\"* /deep/ app /deep/ main\"}","url":"/elements","urlParsed":{"anchor":"","query":"","file":"elements","directory":"/","path":"/elements","relative":"/elements","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/elements","queryKey":{},"chunks":["elements"]},"urlOriginal":"/session/87a8c3c0-7896-11e5-8b2b-f10d392379d5/elements"}}
Build info: version: '2.47.1', revision: '411b314', time: '2015-07-30 03:03:16'

@PatrickJS
Copy link
Owner

If the issue is still valid please open a PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants