Get your setup working faster. Join our Discord for optimisation tips from elite testers.Join our Discord
Set name and status of Selenium tests
Learn how to set a name and status of Selenium tests running on BrowserStack Automate using JavascriptExecutors.
This document will guide you to provide a name to the test, know the status of the test, and recognize the reason for corresponding test status using JavascriptExecutor. This allows you to debug your test cases smoothly and rapidly. This can be achieved using REST API also.
BrowserStack has developed custom JavascriptExecutor methods which makes it possible to perform the following actions while a test is running:
Provide a name to the test
Know the status of the test (passed/failed), and the reason for corresponding test status
Setting a test name
Providing a name to the test provides an identity to each test.
Use the following syntax to set a name to the test in different languages. The argument passed in the JavaScript method for setting a name to the test is name, the value accepted by the argument is in string datatype.
If you are using BrowserStack SDK, the sessionName and setSessionStatus are managed autonomously by the SDK. However, this is applicable only for language frameworks. For vanilla flavours, Session name and status need to be set manually using JavaScript Executor.
Setting the test status
Setting the status allows you to identify if your testcase passed all the assertions mentioned in the script or not.
The arguments passed in the JavaScript method for setting the status and the corresponding reason of the test are status and reason.
status accepts either passed or failed as the value
reason accepts a value in string datatype
Here is the syntax for setting the status of the test in different languages.
packagebs_automate;importjava.net.URL;importjava.util.HashMap;importorg.openqa.selenium.By;importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.MutableCapabilities;importorg.openqa.selenium.remote.RemoteWebDriver;publicclassbs_automate_class{publicstaticfinalStringUSERNAME="YOUR_USERNAME";publicstaticfinalStringAUTOMATE_KEY="YOUR_ACCESS_KEY";publicstaticfinalStringURL="https://"+USERNAME+":"+AUTOMATE_KEY+"@hub-cloud.browserstack.com/wd/hub";publicstaticvoidmain(String[]args)throwsException{// Input capabilitiesDesiredCapabilitiescapabilities=newDesiredCapabilities();capabilities.setCapability("browserName","Chrome");capabilities.setCapability("browserVersion","latest");HashMap<String,Object>browserstackOptions=newHashMap<String,Object>();browserstackOptions.put("os","Windows");browserstackOptions.put("osVersion","11");capabilities.setCapability("bstack:options",browserstackOptions);WebDriverdriver=newRemoteWebDriver(newURL(URL),caps);JavascriptExecutorjse=(JavascriptExecutor)driver;// Setting name of the testjse.executeScript("browserstack_executor: {\"action\": \"setSessionName\", \"arguments\": {\"name\":\"Java test \" }}");// Searching for 'BrowserStack' on google.comdriver.get("https://www.google.com");WebElementelement=driver.findElement(By.name("q"));element.sendKeys("BrowserStack");element.submit();System.out.println(driver.getTitle());// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if(driver.getTitle().equals("BrowserStack - Google Search")){jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"Title matched!\"}}");}else{jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"Title not matched\"}}");}driver.quit();}}
varwebdriver=require('selenium-webdriver');// Input capabilitiesvarcapabilities={'bstack:options':{"os":"Windows","osVersion":"10",},"browserName":"Chrome","browserVersion":"latest",}vardriver=newwebdriver.Builder().usingServer('https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub').withCapabilities(capabilities).build();// Setting name of the testdriver.executeScript('browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Node test"}}');// Searching for 'BrowserStack' on google.comdriver.get('https://www.google.com').then(function(){driver.findElement(webdriver.By.name('q')).sendKeys('BrowserStack\n').then(function(){driver.getTitle().then(function(title){console.log(title);// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if(title==="BrowserStack - Google Search"){driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "Title matched!"}}');}else{driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Title not matched!"}}');}driver.quit();});});});
usingSystem;usingOpenQA.Selenium;usingOpenQA.Selenium.Remote;namespacecs_testing{classProgram{staticvoidMain(string[]args){IWebDriverdriver;// Input capabilitiesChromeOptionscapabilities=newChromeOptions();capabilities.BrowserVersion="102.0";Dictionary<string,object>browserstackOptions=newDictionary<string,object>();browserstackOptions.Add("os","Windows");browserstackOptions.Add("osVersion","11");capabilities.AddAdditionalOption("bstack:options",browserstackOptions);driver=newRemoteWebDriver(newUri("https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub/"),capability);// Setting name of the test((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionName\", \"arguments\": {\"name\":\" C-sharp test \"}}");// Searching for 'BrowserStack' on google.comdriver.Navigate().GoToUrl("https://www.google.com");IWebElementquery=driver.FindElement(By.Name("q"));query.SendKeys("BrowserStack");query.Submit();Console.WriteLine(driver.Title);// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'stringstr="BrowserStack - Google Search";if(string.Equals(driver.Title,str)){((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \" Title matched!\"}}");}else{((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \" Title not matched \"}}");}driver.Quit();}}}
<?phprequire_once('vendor/autoload.php');useFacebook\WebDriver\Remote\RemoteWebDriver;useFacebook\WebDriver\WebDriverBy;# Input capabilities$caps=array('bstack:options'=>array("os"=>"Windows","osVersion"=>"11",),"browserName"=>"Chrome","browserVersion"=>"102.0",)$web_driver=RemoteWebDriver::create("https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",$caps);# Setting name of the test$web_driver->executeScript('browserstack_executor: {"action": "setSessionName", "arguments": {"name":"PHP Test"}}');# Searching for 'BrowserStack' on google.com$web_driver->get("https://google.com");$element=$web_driver->findElement(WebDriverBy::name("q"));if($element){$element->sendKeys("BrowserStack");$element->submit();}print$web_driver->getTitle();# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if($web_driver->getTitle()=="BrowserStack - Google Search"){$web_driver->executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "Title matched!"}}');}else{$web_driver->executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "Title not matched!"}}');}$web_driver->quit();?>
importrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.desired_capabilitiesimportDesiredCapabilities# Input capabilities
desired_cap={'bstack:options':{"os":"Windows","osVersion":"11",},"browserName":"Chrome","browserVersion":"102.0",}driver=webdriver.Remote(command_executor='https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub',desired_capabilities=desired_cap)# Setting a name to the test
driver.execute_script('browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Python test"}}')# Searching for 'BrowserStack' on google.com
driver.get("https://www.google.com")ifnot"Google"indriver.title:raiseException("Unable to load google page!")elem=driver.find_element_by_name("q")elem.send_keys("BrowserStack")elem.submit()print(driver.title)# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'
if(driver.title=="BrowserStack - Google Search"):driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "Title matched!"}}')else:driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "Title not matched"}}')driver.quit()
require"rubygems"require"selenium-webdriver"# Input capabilitiescapabilities={'bstack:options'=>{"os"=>"Windows","osVersion"=>"11",},"browserName"=>"Chrome","browserVersion"=>"102.0",}driver=Selenium::WebDriver.for(:remote,:url=>"https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",:desired_capabilities=>caps)# Setting name of the testdriver.execute_script('browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Ruby test"}}')# Searching for 'BrowserStack' on google.comdriver.navigate.to"https://www.google.com"element=driver.find_element(:name,"q")element.send_keys"BrowserStack"element.submitputsdriver.title# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'ifdriver.title=="BrowserStack - Google Search"driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "Title matched!"}}')elsedriver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "Title not matched"}}')enddriver.quit
packagebs_automate;importjava.net.URL;importorg.openqa.selenium.By;importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.remote.DesiredCapabilities;importorg.openqa.selenium.remote.RemoteWebDriver;publicclassbs_automate_class{publicstaticfinalStringUSERNAME="YOUR_USERNAME";publicstaticfinalStringAUTOMATE_KEY="YOUR_ACCESS_KEY";publicstaticfinalStringURL="https://"+USERNAME+":"+AUTOMATE_KEY+"@hub-cloud.browserstack.com/wd/hub";publicstaticvoidmain(String[]args)throwsException{// Input capabilitiesDesiredCapabilitiescaps=newDesiredCapabilities();caps.setCapability("browser","Chrome");caps.setCapability("browser_version","72.0");caps.setCapability("os","Windows");caps.setCapability("os_version","10");WebDriverdriver=newRemoteWebDriver(newURL(URL),caps);JavascriptExecutorjse=(JavascriptExecutor)driver;// Setting name of the testjse.executeScript("browserstack_executor: {\"action\": \"setSessionName\", \"arguments\": {\"name\":\"Java test \" }}");// Searching for 'BrowserStack' on google.comdriver.get("https://www.google.com");WebElementelement=driver.findElement(By.name("q"));element.sendKeys("BrowserStack");element.submit();System.out.println(driver.getTitle());// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if(driver.getTitle().equals("BrowserStack - Google Search")){jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"Title matched!\"}}");}else{jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"Title not matched\"}}");}driver.quit();}}
varwebdriver=require('selenium-webdriver');// Input capabilitiesvarcapabilities={'browserName':'chrome','browserVersion':'72.0','os':'windows','os_version':'10'}vardriver=newwebdriver.Builder().usingServer('https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub').withCapabilities(capabilities).build();// Setting name of the testdriver.executeScript('browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Node test"}}');// Searching for 'BrowserStack' on google.comdriver.get('https://www.google.com').then(function(){driver.findElement(webdriver.By.name('q')).sendKeys('BrowserStack\n').then(function(){driver.getTitle().then(function(title){console.log(title);// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if(title==="BrowserStack - Google Search"){driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "Title matched!"}}');}else{driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Title not matched!"}}');}driver.quit();});});});
usingSystem;usingOpenQA.Selenium;usingOpenQA.Selenium.Remote;namespacecs_testing{classProgram{staticvoidMain(string[]args){IWebDriverdriver;// Input capabilitiesDesiredCapabilitiescapability=newDesiredCapabilities();capability.SetCapability("browser","Chrome");capability.SetCapability("browser_version","72.0");capability.SetCapability("os","Windows");capability.SetCapability("os_version","10");driver=newRemoteWebDriver(newUri("https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub/"),capability);// Setting name of the test((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionName\", \"arguments\": {\"name\":\" C-sharp test \"}}");// Searching for 'BrowserStack' on google.comdriver.Navigate().GoToUrl("https://www.google.com");IWebElementquery=driver.FindElement(By.Name("q"));query.SendKeys("BrowserStack");query.Submit();Console.WriteLine(driver.Title);// Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'stringstr="BrowserStack - Google Search";if(string.Equals(driver.Title,str)){((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \" Title matched!\"}}");}else{((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \" Title not matched \"}}");}driver.Quit();}}}
<?phprequire_once('vendor/autoload.php');useFacebook\WebDriver\Remote\RemoteWebDriver;useFacebook\WebDriver\WebDriverBy;# Input capabilities$caps=array("browserName"=>"chrome","browserVersion"=>"72.0","os"=>"windows","os_version"=>"10",);$web_driver=RemoteWebDriver::create("https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",$caps);# Setting name of the test$web_driver->executeScript('browserstack_executor: {"action": "setSessionName", "arguments": {"name":"PHP Test"}}');# Searching for 'BrowserStack' on google.com$web_driver->get("https://google.com");$element=$web_driver->findElement(WebDriverBy::name("q"));if($element){$element->sendKeys("BrowserStack");$element->submit();}print$web_driver->getTitle();# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'if($web_driver->getTitle()=="BrowserStack - Google Search"){$web_driver->executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "Title matched!"}}');}else{$web_driver->executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "Title not matched!"}}');}$web_driver->quit();?>
importrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.desired_capabilitiesimportDesiredCapabilities# Input capabilities
desired_cap={'browserName':'chrome','browserVersion':'72.0','os':'windows','os_version':'10'}driver=webdriver.Remote(command_executor=''https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub',
desired_capabilities=desired_cap)
# Setting a name to the test
driver.execute_script('browserstack_executor:{"action":"setSessionName","arguments":{"name":"Python test"}}')
# Searching for 'BrowserStack' on google.com
driver.get("https://www.google.com")
if not "Google" in driver.title:
raise Exception("Unable to load google page!")
elem = driver.find_element_by_name("q")
elem.send_keys("BrowserStack")
elem.submit()
print(driver.title)
# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack-GoogleSearch'
if (driver.title=="BrowserStack - Google Search"):
driver.execute_script('browserstack_executor:{"action":"setSessionStatus","arguments":{"status":"passed","reason":"Title matched!"}}')
else:
driver.execute_script('browserstack_executor:{"action":"setSessionStatus","arguments":{"status":"failed","reason":"Title not matched"}}')
driver.quit()
require"rubygems"require"selenium-webdriver"# Input capabilitiescaps=Selenium::WebDriver::Remote::Capabilities.newcaps["os"]="Windows"caps["os_version"]="10"caps["browser"]="Chrome"caps["browser_version"]="72.0"caps["javascriptEnabled"]="true"driver=Selenium::WebDriver.for(:remote,:url=>"https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",:desired_capabilities=>caps)# Setting name of the testdriver.execute_script('browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Ruby test"}}')# Searching for 'BrowserStack' on google.comdriver.navigate.to"https://www.google.com"element=driver.find_element(:name,"q")element.send_keys"BrowserStack"element.submitputsdriver.title# Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page matches 'BrowserStack - Google Search'ifdriver.title=="BrowserStack - Google Search"driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "Title matched!"}}')elsedriver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "Title not matched"}}')enddriver.quit
If you are using BrowserStack SDK, the sessionName and setSessionStatus are managed autonomously by the SDK. However, this is applicable only for language frameworks. For vanilla flavours, Session name and status need to be set manually using JavaScript Executor.
Did this page help you?
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
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