"Marionette threw an error: TypeError: this.browser.getBrowserForTab is not a function"

VERIFIED FIXED in Firefox -esr52

Status

Testing
Marionette
VERIFIED FIXED
a year ago
5 months ago

People

(Reporter: stomlinson, Unassigned)

Tracking

Version 3
mozilla54
Points:
---

Firefox Tracking Flags

(firefox-esr52 fixed, firefox53 fixed, firefox54 fixed)

Details

Attachments

(1 attachment)

(Reporter)

Description

a year ago
Created attachment 8780086 [details]
marionette_error.log

Attached is a log of an exception I see when running Firefox Accounts content server Selenium tests. We use Leadfoot as our test driver. Tests are run using Firefox 48, geckodriver v0.10.0, Selenium Standalone Server 3.0-beta2, java 1.8.0_102.

The tests run fine for several minutes, but once this error first appears, everything goes down the drain.

Ref https://github.com/mozilla/fxa-content-server/pull/4013
Attachment #8780086 - Attachment mime type: text/x-log → text/plain

Comment 1

11 months ago
Can you try to generate a verbose geckodriver (not selenium) log? To do that you need to pass a capability like {"moz:firefoxOptions": {"log": {"level": "debug"}}} to the driver (assuming you are now using 0.11.1; see the geckodriver readme for more information). That gives us every API call so there might be some clue what is happening just before everything goes wrong.
s/debug/trace/, because otherwise I won’t see the actual packets.

Comment 3

11 months ago
I'm using Selenium (3.0.1) with Java - Passing in the LogLevel is not implemented yet, ref: https://github.com/SeleniumHQ/selenium/issues/3002
That bug is unrelated.  Pass in a raw hash map.

Comment 5

11 months ago
(In reply to Andreas Tolfsen ‹:ato› from comment #4)
> That bug is unrelated.  Pass in a raw hash map.

Except that, as mentioned in the unrelated bug, that doesn't work for me either.

FirefoxOptions ffo = new FirefoxOptions();
ffo.addPreference("log", "{ level: trace }");

doesn't do anything for me.

Comment 6

11 months ago
Best I can do - FireFox 49.0.1, GeckoDriver 0.11.1, Selenium 3.0.1:
-----

A coding exception was thrown and uncaught in a Task.

Full message: TypeError: this.browser.getBrowserForTab is not a function
Full stack: get browserForTab@chrome://marionette/content/browser.js:66:12
get curFrameId@chrome://marionette/content/browser.js:79:7
GeckoDriver.prototype.getWindowHandle@chrome://marionette/content/driver.js:1121:1
Dispatcher.prototype.execute/req<@chrome://marionette/content/dispatcher.js:123:20
TaskImpl_run@resource://gre/modules/Task.jsm:319:40
TaskImpl@resource://gre/modules/Task.jsm:280:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14
Task_spawn@resource://gre/modules/Task.jsm:168:12
Dispatcher.prototype.execute@chrome://marionette/content/dispatcher.js:117:13
Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:88:5
DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://devtools/shared/transport/transport.js:479:11
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14

*************************
*************************
A coding exception was thrown in a Promise rejection callback.
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Full message: TypeError: this.browser.getBrowserForTab is not a function
Full stack: get browserForTab@chrome://marionette/content/browser.js:66:12
get curFrameId@chrome://marionette/content/browser.js:79:7
GeckoDriver.prototype.getWindowHandle@chrome://marionette/content/driver.js:1121:1
Dispatcher.prototype.execute/req<@chrome://marionette/content/dispatcher.js:123:20
TaskImpl_run@resource://gre/modules/Task.jsm:319:40
TaskImpl@resource://gre/modules/Task.jsm:280:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14
Task_spawn@resource://gre/modules/Task.jsm:168:12
Dispatcher.prototype.execute@chrome://marionette/content/dispatcher.js:117:13
Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:88:5
DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://devtools/shared/transport/transport.js:479:11
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14

*************************
Marionette threw an error: TypeError: this.browser.getBrowserForTab is not a function
get browserForTab@chrome://marionette/content/browser.js:66:12
get curFrameId@chrome://marionette/content/browser.js:79:7
GeckoDriver.prototype.getWindowHandle@chrome://marionette/content/driver.js:1121:1
Dispatcher.prototype.execute/req<@chrome://marionette/content/dispatcher.js:123:20
TaskImpl_run@resource://gre/modules/Task.jsm:319:40
TaskImpl@resource://gre/modules/Task.jsm:280:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14
Task_spawn@resource://gre/modules/Task.jsm:168:12
Dispatcher.prototype.execute@chrome://marionette/content/dispatcher.js:117:13
Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:88:5
DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://devtools/shared/transport/transport.js:479:11
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14

11:48:12.385 WARN - Exception thrown
org.openqa.selenium.WebDriverException: this.browser.getBrowserForTab is not a function
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'd1fc52f2288c', ip: '172.25.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-53-generic', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, firefoxOptions={args=[], profile=UEsDBBQACAgIAANeh0kAAAAAAAAAAAAAAAAHAAAAdXNlci5qc51WTW/bMAy971cMOW3AKqTretlOXdcBA4Z1aFDsKMgSbauRJU0fcfPvR/mjSRNHbndKbJMS+fj4yOjBUeugfLconGnxiXhWQvdf6oo0TLXMAQHNCgVi8eFtyZSH91/exJ2nYAFtrHEhudTAVKj7Z4JGG8ln/DWE1rg1qUOwxNbS19uz9Nky788U6CrU6Pjx8vK52xiwAybwR0AAHkB8l86HK4yFK0C34OJhuKbBvB4pr51pgHrupA3URU2DbJLLxXL6osAKTxAOfauvlfEwnc1oLUyrlWEC79KsSsDWpv1Tg14hWgmpaXeLQdng02W0MYKpGexhE4xRnoBzxnGjvVH7cB+n72WljUbUGmgKcKvu0edz8eC9RKtgkAsOfETcSgyUcsd8nfdVUq+JsaApPAZwmqlUzFczqExlvYt6+rIWCuHkBp8Z54DljBoz90gHysEFP4nEU6Wkt4ptQdycL1e/DDInlfbTtDG+Erf6j9RYX3++JBIvMvd3P9FjwQoTw+dCMb1eHHOuT4gypeiDRzBSnLKH/ji2RysRbrQlbS0DKOkDHvA3SneKCYkGaxnI0E0j6zC5xIUsAIphYbAB8lTzibfRkhq7xuLZtAXFUwdFl0q6OEg5VVt3rCHRYoGBaIS23N6jyat1JNrUSjfZ8IBHJ8MWmaIA/xEfnOSBGicrqak1SvJtnqoaWmw7MuSTqeazQPuTSXq5ikUju1b53b286sj4Mt2cPCab8VN3DoVJRUHLE+q160NMs+34e9yIpizRDs6YtZ4g+0xLiy0VULKowrScjLBzbwf+TEd7zIcs20Y6I/dRqYLbkl4ZO/uPc7bZo0dEbu5/XpELwnZFOk7vgW1YPyGyonpYirFH8jw6jtvBQzfEspf0NE3H5/PcQ5zFYL71SrDiSIIkOufLUxran0o1C/hIYQM6zAyIvdF4ixSbjadQhq87UXtRpTwwx+uBN3NjtyE9u4mIjc1WDVn+Ii4+I4xBhJwU04p6JEKH6nMxvfr0an02th/SKMQZyAfbE9Iy7Djzy83e5PTdXN9NTpSg2Gl1FrlErekg9nrH9KOu24F+6Ot+TTm5nQ0zi3ZqJRBGXdGk/zMkqQHHJa+Br7/1gvW1//L6cUaYEDJFzGYmweTS/L/LsjJVlV4OW1xW+/d6qcv4GrUR27WQKrFPy6oO6sS023Mdb/wfaaNjI5AG98KOiIu0Szo4wGi3yqTVE4mNC+TMLrPre1X6aPsVYLdl/ANQSwcIy87bUaYDAAC2DAAAUEsBAhQAFAAICAgAA16HScvO21GmAwAAtgwAAAcAAAAAAAAAAAAAAAAAAAAAAHVzZXIuanNQSwUGAAAAAAEAAQA1AAAA2wMAAAAA}, appBuildId=20160922113459, version=, platform=LINUX, proxy={}, command_id=1, specificationLevel=0, acceptSslCerts=false, processId=366, browserVersion=49.0.1, platformVersion=4.4.0-53-generic, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=linux, device=desktop}]
Session ID: e9529706-2fa0-4c50-9df2-93d649e3f36d
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:127)
        at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:93)
        at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:42)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:163)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
        at org.openqa.selenium.remote.RemoteWebDriver.getWindowHandle(RemoteWebDriver.java:518)
        at org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.window(RemoteWebDriver.java:952)
        at org.openqa.selenium.support.events.EventFiringWebDriver$EventFiringTargetLocator.window(EventFiringWebDriver.java:599)
        at org.openqa.selenium.remote.server.handler.SwitchToWindow.call(SwitchToWindow.java:47)
        at org.openqa.selenium.remote.server.handler.SwitchToWindow.call(SwitchToWindow.java:25)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
11:48:12.385 WARN - Exception: this.browser.getBrowserForTab is not a function
spoke to :vladikoff and it appears to be fixed. Setting to works for me since not sure what may have fixed it.
Status: NEW → RESOLVED
Last Resolved: 5 months ago
Resolution: --- → WORKSFORME
I fixed that as part of bug 1323185.
Status: RESOLVED → VERIFIED
status-firefox53: --- → fixed
status-firefox54: --- → fixed
status-firefox-esr52: --- → fixed
Depends on: 1323185
Resolution: WORKSFORME → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.