This repository was archived by the owner on Jul 29, 2024. It is now read-only.
This repository was archived by the owner on Jul 29, 2024. It is now read-only.
"Detected a page unload event" error in phantom.js #85
Closed
Description
Trying to run "onMocha.js" example with phantomjs or chromedriver doesn't seem to work.
Here's the code, I only changed webdriver.Capabilities.chrome()
to webdriver.Capabilities.phantomjs()
and expect.js
to chai
/**
* This example shows how to use the protractor library in a Mocha test.
* It assumes that a selenium server is running at localhost:4444.
* Run this test with:
* mocha onMocha.js
*/
var util = require('util');
var expect = require('chai').expect;
var webdriver = require('selenium-webdriver');
var protractor = require('../lib/protractor.js');
describe('angularjs.org homepage', function() {
this.timeout(80000);
var driver, ptor;
before(function() {
driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.phantomjs()).build();
driver.manage().timeouts().setScriptTimeout(10000);
ptor = protractor.wrapDriver(driver);
});
after(function(done) {
driver.quit().then(function() {done()});
})
it('should greet using binding', function(done) {
ptor.get('http://www.angularjs.org');
ptor.findElement(protractor.By.input('yourName')).sendKeys('Julie');
ptor.findElement(protractor.By.binding('{{yourName}}')).
getText().then(function(text) {
expect(text).to.eql('Hello Julie!');
done();
});
});
... snip
});
Here's the error
Uncaught UnknownError: Error Message => 'Detected a page unload event; asynchronous script execution does not work across page loads.'
caused by Request => {"headers":{"Accept":"application/json; charset=utf-8","Connection":"keep-alive","Content-Length":"425","Content-Type":"application/json;charset=UTF-8","Host":"192.168.128.240:56087"},"httpVersion":"1.1","method":"POST","post":"{\"script\":\"return (function () {\\n var attempts = arguments[0];\\n var callback = arguments[arguments.length - 1];\\n var check = function(n) {\\n if (window.angular && window.angular.resumeBootstrap) {\\n callback(true);\\n } else if (n < 1) {\\n callback(false);\\n } else {\\n window.setTimeout(function() {check(n - 1)}, 1000);\\n }\\n };\\n check(attempts);\\n}).apply(null, arguments);\",\"args\":[10]}","url":"/execute_async","urlParsed":{"anchor":"","query":"","file":"execute_async","directory":"/","path":"/execute_async","relative":"/execute_async","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/execute_async","queryKey":{},"chunks":["execute_async"]},"urlOriginal":"/session/e2dbebc0-1b3f-11e3-84c0-67b730e3988e/execute_async"}
at new bot.Error (./node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
at Object.bot.response.checkResponse (./node_modules/selenium-webdriver/lib/atoms/response.js:106:9)
at ./node_modules/selenium-webdriver/lib/webdriver/webdriver.js:275:20
at ./node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (./node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (./node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (./node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at fulfill (./node_modules/selenium-webdriver/lib/webdriver/promise.js:402:7)
at ./node_modules/selenium-webdriver/lib/webdriver/promise.js:1305:10
at ./node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (./node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (./node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (./node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at fulfill (./node_modules/selenium-webdriver/lib/webdriver/promise.js:402:7)
at ./node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (./node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (./node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (./node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at fulfill (./node_modules/selenium-webdriver/lib/webdriver/promise.js:402:7)
at ./node_modules/selenium-webdriver/lib/webdriver/promise.js:607:51
at ./node_modules/selenium-webdriver/lib/webdriver/http/http.js:96:5
at IncomingMessage.<anonymous> (./node_modules/selenium-webdriver/http/index.js:113:7)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:895:16
at process._tickCallback (node.js:415:13)
==== async task ====
WebDriver.executeScript()
at webdriver.WebDriver.schedule (./node_modules/selenium-webdriver/lib/webdriver/webdriver.js:266:15)
at webdriver.WebDriver.executeAsyncScript (./node_modules/selenium-webdriver/lib/webdriver/webdriver.js:506:15)
at Protractor.get (./node_modules/protractor/lib/protractor.js:556:15)
at Context.<anonymous> (./node_modules/protractor/example/onMocha.js:32:10)
at Test.Runnable.run (./node_modules/protractor/node_modules/mocha/lib/runnable.js:194:15)
at Runner.runTest (./node_modules/protractor/node_modules/mocha/lib/runner.js:355:10)
at ./node_modules/protractor/node_modules/mocha/lib/runner.js:401:12
at next (./node_modules/protractor/node_modules/mocha/lib/runner.js:281:14)
at ./node_modules/protractor/node_modules/mocha/lib/runner.js:290:7
at next (./node_modules/protractor/node_modules/mocha/lib/runner.js:234:23)
at Object._onImmediate (./node_modules/protractor/node_modules/mocha/lib/runner.js:258:5)
at processImmediate [as _immediateCallback] (timers.js:317:15)
phantom
> phantomjs --version
1.9.1