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

[ci] WebDriver Error: "no such session" #756

Closed
huan opened this issue Aug 22, 2017 · 4 comments
Closed

[ci] WebDriver Error: "no such session" #756

huan opened this issue Aug 22, 2017 · 4 comments
Labels

Comments

@huan
Copy link
Member

huan commented Aug 22, 2017

Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8), WebDriverError: no such session

Links:

  1. Enable ChromeDriver Logging: ./chromedriver --verbose --log-path="path/to/some/dir/chromedriver.log"
  2. Instead of calling Remote WebDriver, I actually called Chrome Driver
  3. start ChromeDriver in two different instance at same time on same OS
  4. By starting chrome with option --disable-impl-side-painting I'm able to run the tests with no problems.
  5. DBUS_SESSION_BUS_ADDRESS=/dev/null: Chromedriver frequently hangs when attempting to start a new session. SeleniumHQ/docker-selenium#87 (comment)
Show Logs
22:41:00 VERB PuppetWebBrowser constructor() with head(chrome) sessionFile()
22:41:00 VERB PuppetWebBrowserDriver constructor(chrome)
22:41:00 VERB PuppetWebBrowserCookie constructor(BrowserDriver, )
22:41:00 VERB PuppetWebBridge new Bridge({puppet: Object, port: 58788})
22:41:00 VERB PuppetWebBrowser init()
22:41:00 VERB StateSwitch Browser:target(open) <- (close)
22:41:00 VERB StateSwitch Browser:current(open,false) <- (close,true)
22:41:00 VERB PuppetWebBrowserCookie hostname()
22:41:00 VERB PuppetWebBrowserCookie getCookiesFromFile() from "undefined"
22:41:00 VERB PuppetWebBrowserDriver init() for head: chrome
22:41:00 VERB PuppetWebBrowserDriver getChromeDriver()
22:41:00 VERB PuppetWebBrowserDriver getChromeDriver() ttl: 2
22:41:00 VERB PuppetWebBrowserDriver getChromeDriver() new Builder()
22:41:00 VERB PuppetWebBrowserDriver getChromeDriver() new Builder() done
22:41:00 VERB PuppetWebBrowserDriver valid()
22:41:00 VERB PuppetWebBrowserDriver validDriverSession()
22:41:00 VERB PuppetWebBrowserDriver validDriverSession() getSession()
22:41:02 VERB PuppetWebBrowserDriver validDriverSession() getSession() done
22:41:02 VERB PuppetWebBrowserDriver validDriverSession() getSession() clearing timer
22:41:02 VERB PuppetWebBrowserDriver validDriverSession() driver.getSession() done()
22:41:02 VERB PuppetWebBrowserDriver validDriverExecute()
22:41:02 VERB PuppetWebBrowserDriver validDriverExecute() driver.executeScript() done: two = 2
22:41:02 VERB PuppetWebBrowserDriver getChromeDriver() valid() is true at ttl 2
22:41:02 VERB PuppetWebBrowser init() driver.init() done
22:41:02 VERB PuppetWebBrowser open(https://wx.qq.com/zh_CN/htmledition/v2/images/webwxgeticon.jpg)
22:41:02 VERB PuppetWebBrowser open() begin for ttl:2
22:41:04 VERB PuppetWebBrowser open() end at ttl:2
22:41:04 VERB PuppetWebBrowserCookie load() from "undefined"
22:41:04 VERB PuppetWebBrowserCookie getCookiesFromFile() from "undefined"
22:41:04 VERB PuppetWebBrowser open(undefined)
22:41:04 VERB PuppetWebBrowserCookie hostname()
22:41:04 VERB PuppetWebBrowserCookie getCookiesFromFile() from "undefined"
22:41:04 VERB PuppetWebBrowser open() begin for ttl:2
22:42:24 VERB PuppetWebBrowser open() end at ttl:2
22:42:24 VERB StateSwitch Browser:current(open,true) <- (open,false)
22:42:24 VERB PuppetWebBrowser open(undefined)
22:42:24 VERB PuppetWebBrowserCookie hostname()
22:42:24 VERB PuppetWebBrowserCookie getCookiesFromFile() from "undefined"
22:42:24 VERB PuppetWebBrowser open() begin for ttl:2
22:42:24 ERR PuppetWebBrowser open() exception: no such session
  (Driver info: chromedriver=2.31.488774 (7e15618d1bf16df8bf0ecf2914ed1964a387ba0b),platform=Mac OS X 10.11.6 x86_64)

CI Log1: https://travis-ci.org/Chatie/wechaty/jobs/266968086#L5342

Show Logs
00:54:03 VERB PuppetWebBrowserDriver init() for head: chrome
00:54:03 VERB PuppetWebBrowserDriver getChromeDriver()
00:54:03 VERB PuppetWebBrowserDriver getChromeDriver() ttl: 2
00:54:03 VERB PuppetWebBrowserDriver getChromeDriver() new Builder()
00:54:03 VERB PuppetWebBrowserDriver getChromeDriver() new Builder() done
00:54:03 VERB PuppetWebBrowserDriver valid()
00:54:03 VERB PuppetWebBrowserDriver validDriverSession()
00:54:03 VERB PuppetWebBrowserDriver validDriverSession() getSession()
00:54:04 VERB PuppetWebBrowserDriver validDriverSession() getSession() done
00:54:04 VERB PuppetWebBrowserDriver validDriverSession() getSession() clearing timer
00:54:04 VERB PuppetWebBrowserDriver validDriverSession() driver.getSession() done()
00:54:04 VERB PuppetWebBrowserDriver validDriverExecute()
00:54:04 VERB PuppetWebBrowserDriver validDriverExecute() driver.executeScript() done: two = 2
00:54:04 SILL PuppetWebBrowserDriver validDriverExecute() driver ok
00:54:04 VERB PuppetWebBrowserDriver getChromeDriver() valid() is true at ttl 2
00:54:04 SILL PuppetWebBrowserDriver getChromeDriver() success
00:54:04 VERB PuppetWebBrowser init() driver.init() done
00:54:04 VERB PuppetWebBrowser open(https://wx.qq.com/zh_CN/htmledition/v2/images/webwxgeticon.jpg)
00:54:04 VERB PuppetWebBrowser open() begin for ttl:2
00:54:22 VERB PuppetWebBrowser open() end at ttl:2
00:54:22 VERB PuppetWebBrowserCookie load() from unit-test-session.wechaty.json
00:54:22 VERB PuppetWebBrowserCookie getCookiesFromFile() from unit-test-session.wechaty.json
00:54:22 VERB PuppetWebBrowserCookie add(Array.length = 3)
00:54:22 SILL PuppetWebBrowserCookie add({"domain":".qq.com","httpOnly":false,"name":"pgv_si","path":"/","secure":false,"value":"s867141632"})
00:54:22 SILL PuppetWebBrowserCookie add({"domain":".qq.com","expiry":2147385600,"httpOnly":false,"name":"pgv_pvi","path":"/","secure":false,"value":"9356140544"})
00:54:22 SILL PuppetWebBrowserCookie add({"domain":".wx.qq.com","expiry":1503406323,"httpOnly":false,"name":"mm_lang","path":"/","secure":false,"value":"en"})
00:54:22 VERB PuppetWebBrowserCookie loaded session(3 cookies) from unit-test-session.wechaty.json
00:54:22 VERB PuppetWebBrowser open(undefined)
00:54:22 VERB PuppetWebBrowserCookie hostname()
00:54:22 VERB PuppetWebBrowserCookie getCookiesFromFile() from unit-test-session.wechaty.json
00:54:22 SILL PuppetWebBrowserCookie hostname() no valid cookie in files, return default hostname
00:54:22 VERB PuppetWebBrowser open() begin for ttl:2
00:55:38 VERB PuppetWebBrowser open() end at ttl:2
00:55:38 SILL StateSwitch Browser:target() is open
00:55:38 VERB StateSwitch Browser:current(open,true) <- (open,false)
00:55:38 VERB PuppetWeb initBrowser() done
00:55:38 VERB PuppetWeb initBridge()
00:55:38 VERB PuppetWebBridge new Bridge({puppet: PuppetWeb, port: 19182})
00:55:38 SILL StateSwitch Puppet:target() is live
00:55:38 VERB PuppetWebBridge init()
00:55:38 VERB PuppetWebBridge inject()
00:55:38 VERB PuppetWebBridge getInjectio()
00:55:38 SILL PuppetWebBridge execute()
00:55:38 SILL PuppetWebBrowser Browser.execute("injectioReturnValue = /** * Wechaty - https://github.com/chatie/wechaty * * ... ")
00:55:38 SILL StateSwitch Browser:target() is open
00:55:38 SILL StateSwitch Browser:current() is open
00:55:38 WARN PuppetWebBrowser execute() exception: no such session
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8), WebDriverError: no such session

CI Log2: https://travis-ci.org/Chatie/wechaty/jobs/266987347#L2880

@huan
Copy link
Member Author

huan commented Sep 1, 2017

Might related with https://stackoverflow.com/a/44876500/1123955

If your run same script to start ChromeDriver in two different instance at same time on same OS, when one instance is finished and shut down the chromedriver, the other chrome browser instance might be closed as well.

for example you open the two console and excute chromedriver scrpit, or you Jenkins project start in the same time.

I believe even if you run different script but require chromedriver at same time. one of the script will have "no such session" due to the chrome broswer instance shutdown.

@huan
Copy link
Member Author

huan commented Sep 1, 2017

https://groups.google.com/d/msg/selenium-users/GOajhdoO0Ec/bYnjp0YpAgAJ

Since close is used(twice) which will close the browser(at fist ooccurence) and after that, there are statements which are performing operations when the browser is already closed. So we get an error that session does not exist since the browser is already closed.

@huan
Copy link
Member Author

huan commented Sep 1, 2017

It looks this commit might help(or change something): c11fdc0

huan added a commit that referenced this issue Sep 1, 2017
huan added a commit that referenced this issue Sep 1, 2017
huan added a commit that referenced this issue Oct 8, 2017
@huan
Copy link
Member Author

huan commented Oct 8, 2017

This issue should be fixed at v0.10 or above.

@huan huan closed this as completed Oct 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant