Appium Error: A new session could not be created. (Initial Error: Failed to transfer session from Chromedriver)

I am trying to run my first test through Appium and get the following error.

 org.openqa.selenium.SessionNotCreatedException: A new session could not be created.  (Original error: Did not get session redirect from Chromedriver) (WARNING: The server did not provide any stacktrace information)

 Command duration or timeout: 4.64 seconds
 Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32'
 os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_51'
 Driver info: org.openqa.selenium.remote.RemoteWebDriver

Upium magazines:

  ERROR: debug: Appium request initiated at / wd / hub / session 
info: Looks like we want chrome on android
info: Creating new appium session 99ff77a0-86fa-4851-93ad-5375c95656e7
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" devices
info: Preparing device for session
info: Not checking whether app is present since we are assuming it already on the device
info: Checking whether adb is present
info: [ADB] Using adb from D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe
info: Trying to find a connected android device
info: [ADB] Getting connected devices ...
info: [ADB] 1 device (s) connected
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" -s emulator-5554 wait-for-device
info: Setting device id to emulator-5554
info: [ADB] Waiting for device to be ready and to respond to shell commands (timeout = 5)
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" -s emulator-5554 shell "echo 'ready'"
info: Starting logcat capture
ERROR: debug: Pushing unlock helper app to device ...
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" -s emulator-5554 install "C: \ Appium \ node_modules \ appium \ build \ unlock_apk \ unlock_apk-debug.apk "
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" -s emulator-5554 shell "dumpsys window"
info: Writing dumpsys output to C: \ Appium \ node_modules \ appium \ .dumpsys.log
ERROR: debug: Screen already unlocked, continuing.
info: Creating Chrome session
info: Ensuring Chromedriver exists
info: Killing any old chromedrivers, running: FOR / F "usebackq tokens = 5"% a in (`netstat -nao ^ | findstr / R / C:" 9515 "`) do (FOR / F "usebackq"% b in (`TASKLIST / FI" PID eq% a "^ | findstr / I chromedriver.exe`) do (IF NOT% b ==" "TASKKILL / F / PID% b))
info: No old chromedrivers seemed to exist
info: Spawning chromedriver with: C: \ Appium \ node_modules \ appium \ build \ chromedriver \ windows \ chromedriver.exe
info: [CHROMEDRIVER] Starting ChromeDriver (v2.9.248315) on port 9515
info: Making http request with opts: {"url": "http: // ****: 9515 / wd / hub / session", "method": "POST", "json": {"sessionId": null , "desiredCapabilities": {"chromeOptions": {"androidPackage": "com.android.browser", "androidActivity": "com.android.browser.BrowserActivity", "androidDeviceSerial": "emulator-5554"}}}}}
ERROR: debug: executing: "D: \ **** \ adt-bundle-windows-x86-20140321 \ sdk \ platform-tools \ adb.exe" -s emulator-5554 devices
info: [CHROMEDRIVER STDERR] [0.003] [SEVERE]: Could not bind socket to 0.0.0.0:9515
info: [CHROMEDRIVER] Port not available. Exiting ...
info: Chromedriver exited with code 1
info: [ADB] Getting connected devices ...
ERROR: error: Chromedriver create session did not work. Status was 200 and body was {"sessionId": "ba9a494082776d6b4836da850072cbcb", "status": 13, "value": {"message": "unknown error: Device emulator-5554 is already in use \ n (Driver info: chromedriver = 2.9.248315, platform = Windows NT 6.1 SP1 x86) "}}
info: Cleaning up appium session
ERROR: error: Failed to start an Appium session, err was: Error: Did not get session redirect from Chromedriver
info: Error: Did not get session redirect from Chromedriver
at null. (C: \ Appium \ node_modules \ appium \ lib \ devices \ android \ chromedriver.js: 195: 12)
at Request._callback (C: \ Appium \ node_modules \ appium \ lib \ devices \ common.js: 104: 5)
at Request.self.callback (C: \ Appium \ node_modules \ appium \ node_modules \ request \ request.js: 121: 22)
at Request.EventEmitter.emit (events.js: 98: 17)
at Request. (C: \ Appium \ node_modules \ appium \ node_modules \ request \ request.js: 985: 14)
at Request.EventEmitter.emit (events.js: 117: 20)
at IncomingMessage. (C: \ Appium \ node_modules \ appium \ node_modules \ request \ request.js: 936: 12)
at IncomingMessage.EventEmitter.emit (events.js: 117: 20)
at _stream_readable.js: 920: 16
at process._tickCallback (node.js: 415: 13)
info: Responding to client with error: {"status": 33, "value": {"message": "A new session could not be created. (Original error: Did not get session redirect from Chromedriver)", "origValue" : "Did not get session redirect from Chromedriver"}, "sessionId": null}

I want to use only the default Android browser, not Chrome. I don’t know why Appium is trying to start Chromedriver and Chrome Browser. Below is the code I used.

import java.net.URL; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class Appium { public WebDriver driver; @BeforeMethod public void beforeMethod() throws Exception { // set up appium DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "Browser"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformVersion", "4.4.2"); WebDriver driver = new RemoteWebDriver(new URL( http://****:4723/wd/hub), capabilities); driver.get("http://www.yahoo.com"); } @Test public void f() { } @AfterMethod public void afterMethod() { driver.quit(); } } 
+8
java selenium appium
source share
5 answers

The safest way to set Android features = DesiredCapabilities.android ()

PS: Your session has not been created because your script cannot connect to selenium node / hub; you must check your configuration

As in your post stacktrace, it connects to http: // **: 9515 / (not like in the specified port 4723)

0
source share

You need to set the following url http://0.0.0.0:9515/wd/hub instead of ****:4723 ...

WebDriver driver = new RemoteWebDriver(new URL(http://****:4723/wd/hub), capabilities);

The default port of Chromedriver is 9515, not 4723. You should read the documentation on this. There are other features that need to be installed correctly (e.g. BROWSER_NAME )

0
source share

Despite the fact that this problem is quite old, and many definitions have changed when using the appium client along with chrome driver version updates. However, I realized that the problem here was in the logs:

ERROR: error: creating a Chromedriver session does not work. The state is 200 and the body was {"SESSIONID": "ba9a494082776d6b4836da850072cbcb", "status": 13, "value": {"message": "unknown Error: Device emulator-5554 is already in use \ n (Driver Information: chromedriver = 2.9 .248315, platform = Windows NT 6.1 SP1 x86) "}}

leading further to:

org.openqa.selenium.SessionNotCreatedException: A new session may not be created. (Original error: Failed to get session redirection from Chromedriver ) (WARNING: server did not provide any stacktrace information)

and therefore a SessionNotCreatedException.

A simplified fix for this may be because another session is not running before starting another to avoid port conflicts and session failures.

0
source share

Try to run after the comment below the instructions

  capabilities.setCapability("platformVersion", "4.4.2"); 
0
source share

Replace the old chrome driver with the new chrome driver in appium location, it worked for me.

The Appium location should look something like this:

 C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\ 

Appium Version: 1.4.16.1

0
source share

All Articles