BrowserStack has a Visual Logs feature to take screenshots automatically during your Selenium test without you initiating a screenshot explicitly through test code.
Taking screenshots using the Visual Logs capability is currently not supported on BrowserStackβs macOS Snow Leopard and Lion computers.
These contain the screenshots that are auto-generated during each Selenium command that your code executes. Visual logs help with debugging the exact step and how the page was rendered when the failure occurred. They also help identify any layout or design related issues with your web pages on different browsers.
Visual logs are disabled by default. You can enable them by using the debug capability.
You can use either Selenium 4 or Selenium Legacy JSON to organize your tests.
BrowserStack SDK is a plug-n-play solution that takes care of all the integration steps for you. Using the BrowserStack SDK is the recommended integration method for your project. To know more, visit the SDK core concepts page.
You can choose to take a screenshot from your test script and either save it to your local machine or only display it in sessionβs text logs:
Take screenshot and download it to your local machine
You can choose when to take a screenshot from your test script and also save these screenshots to the machine that runs the automated tests. If you are on a CI/CD setup, make sure you transfer these screenshots before you wind down the machine.
Here is how you take a screenshot and save it to your machine:
// Import the relevant packages// ... your test code// Take a screenshot and save it to /location/to/screenshot.pngdriver=(RemoteWebDriver)newAugmenter().augment(driver);FilesrcFile=(File)((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileHandler.copy(srcFile,newFile("/location/to/screenshot.png"));// ... your test code
importorg.openqa.selenium.TakesScreenshot;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.remote.Augmenter;importorg.openqa.selenium.remote.DesiredCapabilities;importorg.openqa.selenium.remote.RemoteWebDriver;importorg.openqa.selenium.OutputType;importjava.net.URL;publicclasscamera{publicstaticfinalStringAUTOMATE_USERNAME="YOUR_USERNAME";publicstaticfinalStringAUTOMATE_ACCESS_KEY="YOUR_ACCESS_KEY";publicstaticfinalStringURL="https://"+AUTOMATE_USERNAME+":"+AUTOMATE_ACCESS_KEY+"@hub-cloud.browserstack.com/wd/hub";publicstaticvoidmain(String[]args)throwsException{DesiredCapabilitiescaps=newDesiredCapabilities();caps.setCapability("os_version","10");caps.setCapability("resolution","1920x1080");caps.setCapability("browser","Chrome");caps.setCapability("browser_version","88.0");caps.setCapability("os","Windows");caps.setCapability("name","BStack-[Java] Sample Test");// test namecaps.setCapability("build","BStack Build Number 1");// CI/CD job or build nameWebDriverdriver=newRemoteWebDriver(newURL(URL),caps);driver=(RemoteWebDriver)newAugmenter().augment(driver);((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);driver.get("https://www.google.com");driver.quit();}}
constwebdriver=require('selenium-webdriver');constfs=require('fs');// Input capabilitiesconstcapabilities={'browserName':'Chrome','browser_version':'88.0','os':'Windows','os_version':'10','name':'BStack-[NodeJS] Sample Test',// test name'build':'BStack Build Number 1'// CI/CD job or build name}asyncfunctionrunTestWithCaps(){letdriver=newwebdriver.Builder().usingServer('https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub').withCapabilities(capabilities).build();awaitdriver.get("https://www.google.com");awaitdriver.takeScreenshot()awaitdriver.quit();}runTestWithCaps();
usingSystem;usingOpenQA.Selenium;usingOpenQA.Selenium.Remote;namespaceSeleniumTest{publicclassScreenShotRemoteWebDriver:RemoteWebDriver,ITakesScreenshot{publicScreenShotRemoteWebDriver(Uriuri,OpenQA.Selenium.Chrome.ChromeOptionsdc):base(uri,dc){}publicnewScreenshotGetScreenshot(){ResponsescreenshotResponse=this.Execute(DriverCommand.Screenshot,null);stringbase64=screenshotResponse.Value.ToString();returnnewScreenshot(base64);}}classProgram{staticvoidMain(string[]args){ScreenShotRemoteWebDriverdriver;//IWebDriver driver;OpenQA.Selenium.Chrome.ChromeOptionscapability=newOpenQA.Selenium.Chrome.ChromeOptions();capability.AddAdditionalCapability("os_version","10",true);capability.AddAdditionalCapability("resolution","1920x1080",true);capability.AddAdditionalCapability("browser","Chrome",true);capability.AddAdditionalCapability("browser_version","latest-beta",true);capability.AddAdditionalCapability("os","Windows",true);capability.AddAdditionalCapability("name","Take Screenshot Sample Test",true);// test namecapability.AddAdditionalCapability("build","Screenshot Test Build",true);// CI/CD job or build namecapability.AddAdditionalCapability("browserstack.user","YOUR_USERNAME",true);capability.AddAdditionalCapability("browserstack.key","YOUR_ACCESS_KEY",true);driver=newScreenShotRemoteWebDriver(newUri("https://hub-cloud.browserstack.com/wd/hub/"),capability);driver.Navigate().GoToUrl("https://www.google.com/ncr");Console.WriteLine(driver.Title);IWebElementquery=driver.FindElement(By.Name("q"));query.SendKeys("Browserstack");query.Submit();Console.WriteLine(driver.Title);ITakesScreenshotscreenshotDriver=driverasITakesScreenshot;Screenshotscreenshot=screenshotDriver.GetScreenshot();driver.Quit();}}}
<?phprequire_once('vendor/autoload.php');useFacebook\WebDriver\Remote\RemoteWebDriver;useFacebook\WebDriver\WebDriverBy;$caps=array("browser"=>"Chrome","browser_version"=>"88.0","realMobile"=>"true","os"=>"Windows","os_version"=>"10","name"=>"BStack-[Php] Sample Test",// test name"build"=>"BStack Build Number 1"// CI/CD job or build name);$web_driver=RemoteWebDriver::create("https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",$caps);# Searching for 'BrowserStack' on google.com$web_driver->get("https://google.com");file_put_contents('screenshot.png',$web_driver->takeScreenshot());$web_driver->quit();?>
fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.desired_capabilitiesimportDesiredCapabilitiesfromselenium.common.exceptionsimportTimeoutExceptionfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECdesired_cap={'browser':'Chrome','browser_version':'88.0','os':'Windows','os_version':'10','name':'BStack-[Python] Sample Test',# test name
'build':'BStack Build Number 1'# CI/CD job or build name
}options.set_capability('bstack:options',desired_cap)driver=webdriver.Remote(command_executor='https://hub-cloud.browserstack.com/wd/hub',options=options)driver.get("https://www.google.com")driver.save_screenshot('screenshots.png')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']='88.0'caps['name']='BStack-[Ruby] Sample Test'# test namecaps['build']='BStack Build Number 1'# CI/CD job or build namedriver=Selenium::WebDriver.for(:remote,:url=>"https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",:desired_capabilities=>caps)# Searching for 'BrowserStack' on google.comdriver.navigate.to"https://www.google.com"driver.save_screenshot("screenshots.png")driver.quit
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