Selenium Ide Continue Next Test in Same Session
Get Session Details of Selenium Tests
A Selenium session running on BrowserStack generates data and logs such as console logs, Selenium logs, etc. BrowserStack provides a custom JavaScriptExecutor to get the details of your BrowserStack session as a JSON response.
In this guide, you'll learn:
- How to get details of a session
- How to get and use the ID of a session
Get session details of a test
Add the following code snippets, after initializing the web driver in your test script, to get details of your ongoing BrowserStack test session:
// start a remote browser with the desired capabilities RemoteWebDriver driver = new RemoteWebDriver ( new URL ( URL ), caps ); // declare the JavascriptExecutor class JavascriptExecutor jse = ( JavascriptExecutor ) driver ; // ... some lines of your test script // store the JSON response in the Object class Object response = jse . executeScript ( "browserstack_executor: {\"action\": \"getSessionDetails\"}" ); // print the Session details in your IDE's console System . out . println ( response ); // ... continue with your tests // write the test capabilities // ... // initialize the driver let driver = new webdriver . Builder (). usingServer ( `https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub` ). withCapabilities ( capabilities ). build (); // get details of the session const response = await driver . executeScript ( ' browserstack_executor: {"action": "getSessionDetails"} ' ); // print session details in your IDE's console if required console . log ( response ); // write the test capabilities // ... // initialize the driver driver = new RemoteWebDriver ( new Uri ( "https://hub-cloud.browserstack.com/wd/hub/" ), capability ); // get details of the session Object sessionObject = (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"action\": \"getSessionDetails\"}" ); // print JSON response in your IDE's console if required Console . WriteLine ( sessionObject ); // write the test capabilities // ... // initialize the driver $driver = RemoteWebDriver :: create ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , $caps ); // write the test script // ... // get details of the session $response = $driver -> executeScript ( 'browserstack_executor: {"action": "getSessionDetails"}' ); // print the session details in the IDE's console if required echo $response ; # import the JSON package import json # initialize the driver driver = webdriver . Remote ( command_executor = 'https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) # get details of the session response = driver . execute_script ( 'browserstack_executor: {"action": "getSessionDetails"}' ) # print the session details in the IDE's console print ( response ) # initialize the driver driver = Selenium :: WebDriver . for ( :remote , :url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , :desired_capabilities => caps ) # get details of the session response = driver . execute_script ( 'browserstack_executor: {"action": "getSessionDetails"}' ) # print the session details in the IDE's console if required puts response # import the JSON module use JSON ; # write the test capabilities #... # write the test script # ... # get the session details $response = $driver -> execute_script (' browserstack_executor: {"action": "getSessionDetails"} ' ); # print the session details in your IDE's console if required print ( $response ); # ... perform any action with the session details #... continue with your tests The following sample JSON response, after running the JavaScriptExecutor code, is displayed in the Text Logs section of your Automate session:
{ "name" : "BStack-[Ruby] Sample Test" , "duration" : null , "os" : "ios" , "os_version" : "14.3" , "browser_version" : null , "browser" : null , "device" : "iPhone 12 Pro Max" , "status" : "running" , "hashed_id" : "0c9d1fc296db316f9004b866bd6b8032fa95b292" , "reason" : null , "build_name" : "BStack Build Number 1" , "project_name" : "Untitled Project" , "build_hashed_id" : "6ef2223dd4cdcb44e738bcbe3ed3867f8ed48158" , "test_priority" : null , "logs" : "https://automate.browserstack.com/builds/6ef2223dd4cdcb44e738bcbe3ed3867f8ed48158/sessions/0c9d1fc296db316f9004b866bd6b8032fa95b292/logs" , "browserstack_status" : "running" , "created_at" : "2022-02-04T06:16:48.000Z" , "browser_url" : "https://automate.browserstack.com/builds/6ef2223dd9cdcb44e739bcbe3ed3867f8ed48158/sessions/0c9d1fc296db316f9004b866bd6b8032fa95b292" , "public_url" : "https://automate.browserstack.com/builds/6ef2223dd9cdcb44e739bcbe3ed3867f8ed48158/sessions/0c9d1fc296db316f9004b866bd6b8032fa95b292?auth_token=ef9819b57b8756bd82de841d91b74d2eda5a81609d1bcf53z5236bd5b8b89945" , "video_url" : "https://automate.browserstack.com/sessions/0c9d1fc296db316f9004b866bd6b8032fa95b292/video?token=UCFaMG9Yb1B3TDF5V1M2c0ZVLmpaUTFYYVUwcGRicGVabjRQVytZNjlpOXh2cnR3ZXczaGpQRjQ2RHVMelN3elJ4VUtqL1JWZjIabkdTcTFVdWZU00E9PS0tRU14V0VMRjRlNWNSbTI2U252QlZjZz09--b580fa72ff41aa2a8ef20571d7629b82eac9278e&source=rest_api&diff=-1" , "browser_console_logs_url" : "https://automate.browserstack.com/s3-upload/bs-selenium-logs-aps/s3.ap-south-1/0c9d1fc296db316f9004b866bd6b8032fa95b292/0c9d1fc296db316f9004b866bd6b8032fa95b292-console-logs-v2.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2XUQHUQMCEH5SPMK%2F20220204%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220204T061657Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98d8c3312f04f0df2aecce5e3397d0aea6c3006384168c6ce256a954ed612795" , "har_logs_url" : "https://automate.browserstack.com/s3-upload/bs-selenium-logs-euw/s3.eu-west-1/0c9d1fc296db316f9004b866bd6b8032fa95b292/0c9d1fc296db316f9004b866bd6b8032fa95b292-har-logs.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2XUQHUQMCEH5SPMK%2F20220204%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20220204T061657Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c69531d040702e1fb5a05361d4381cad43p1e0cd940c3a485b0e76d9c57b7027" , "selenium_logs_url" : "https://automate.browserstack.com/s3-upload/bs-selenium-logs-euw/s3.eu-west-1/0c9d1fc296db316f9004b866bd6b8032fa95b292/0c9d1fc296db316f9004b866bd6b8032fa95b292-selenium-logs.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2XUQHUQMCEH5SPMK%2F20220204%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20220204T061657Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=61a7b668c343ecdc049zd583210bd3410b0b1316c919e1175f24da2ef7991b19" } Use session ID of a test
BrowserStack generates a unique ID for each session. A session ID is used to perform actions on a session, such as updating the status of a session, getting Selenium logs of a session, etc. Check out the session's REST API requests section to learn about the supported actions that you can perform using a session ID.
The following code snippet shows how to get the session details, and then further parse it to get the session ID to use in your test:
// start a remote browser with the desired capabilities RemoteWebDriver driver = new RemoteWebDriver ( new URL ( URL ), caps ); // declare the JavascriptExecutor class JavascriptExecutor jse = ( JavascriptExecutor ) driver ; // ... some lines of your test script // store the JSON response in the Object class Object response = jse . executeScript ( "browserstack_executor: {\"action\": \"getSessionDetails\"}" ); // parse the JSON response JSONObject json = ( JSONObject ) new JSONParser (). parse (( String ) response ); // store session ID in a variable String sessionID = ( String ) json . get ( "hashed_id" ); // print session ID in your IDE's console System . out . println ( sessionID ); // ... perform any action with the session ID // ... continue with your tests // write the test capabilities // ... // initialize the driver let driver = new webdriver . Builder (). usingServer ( `https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub` ). withCapabilities ( capabilities ). build (); // get details of the session const response = await driver . executeScript ( ' browserstack_executor: {"action": "getSessionDetails"} ' ); // parse the JSON response const session_details = JSON . parse ( response ); // print session ID in your IDE's console console . log ( session_details . hashed_id ); // write the test capabilities // ... // initialize the driver driver = new RemoteWebDriver ( new Uri ( "https://hub-cloud.browserstack.com/wd/hub/" ), capability ); // get details of the session Object sessionObject = (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"action\": \"getSessionDetails\"}" ); // convert Object to String for parsing string json_resp = Convert . ToString ( sessionObject ); // parse the data var session_details = JObject . Parse ( json_resp ); // print the session ID on IDE's console Console . WriteLine ( session_details [ "hashed_id" ]); // write the test capabilities // ... // initialize the driver $driver = RemoteWebDriver :: create ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , $caps ); // write the test script // ... // get details of the session $response = $driver -> executeScript ( 'browserstack_executor: {"action": "getSessionDetails"}' ); $session_details = json_decode ( $response ); // print the session ID in the IDE's console echo $session_details -> hashed_id ; # import the JSON package import json # initialize the driver driver = webdriver . Remote ( command_executor = 'https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) # get details of the session response = driver . execute_script ( 'browserstack_executor: {"action": "getSessionDetails"}' ) jsonResponse = json . loads ( response ) # print the session ID in the IDE's console print ( jsonResponse [ "hashed_id" ]) # perform any actions using the session ID # initialize the driver driver = Selenium :: WebDriver . for ( :remote , :url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , :desired_capabilities => caps ) # get details of the session response = driver . execute_script ( 'browserstack_executor: {"action": "getSessionDetails"}' ) session_details = JSON . parse ( response ) # print the session ID in the IDE's console puts session_details [ "hashed_id" ] # import the JSON module use JSON ; # write the test capabilities #... # write the test script # ... # store the session details in a variable $response = $driver -> execute_script (' browserstack_executor: {"action": "getSessionDetails"} ' ); $session_details = decode_json ( $response ); # print the session ID in IDE's console print ( $session_details -> {' hashed_id '}); # ... perform any action with the session ID #... continue with your tests We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Is this page helping you?
Yes
No
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!
Source: https://www.browserstack.com/docs/automate/selenium/get-session-id
0 Response to "Selenium Ide Continue Next Test in Same Session"
Post a Comment