---
title: Annotating Tests with Selenium's JavaScript Executor
description: Use Javascript to pass meta-data to TestingBot with Selenium's JavaScript
  Executor.
source_url:
  html: https://testingbot.com/support/web-automate/selenium/annotating-tests
  md: https://testingbot.com/support/web-automate/selenium/annotating-tests.md
---

# Updating Tests with Selenium

You can use the TestingBot API to send various test information back to TestingBot: test-name, passed/failed state, build identifier and more.   
 We've added custom [JavaScript Executor](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html) commands which allow you to send back test meta-data to TestingBot, while your test is running.

Below are some examples on how to do this in various programming languages:

[Java](https://testingbot.com#) [Python](https://testingbot.com#) [NodeJS](https://testingbot.com#) [Ruby](https://testingbot.com#) [PHP](https://testingbot.com#) [C#](https://testingbot.com#)

```java
((JavascriptExecutor)driver).executeScript("tb:test-name=My test");
((JavascriptExecutor)driver).executeScript("tb:test-result=passed");
```

```python
driver.execute_script('tb:test-name=My test')
driver.execute_script('tb:test-result=passed')
```

```javascript
await driver.executeScript('tb:test-name=My test');
await driver.executeScript('tb:test-result=passed');
```

```ruby
driver.execute_script('tb:test-name=My test')
driver.execute_script('tb:test-result=passed')
```

```php
$web_driver->executeScript('tb:test-name=My test');
$web_driver->executeScript('tb:test-result=passed');
```

```csharp
((IJavaScriptExecutor)driver).ExecuteScript("tb:test-name=My test");
((IJavaScriptExecutor)driver).ExecuteScript("tb:test-result=passed");
```

## Set a test name

```javascript
tb:test-name=My Test Name
```

Sets the test-name for the currently running test. This name will be visible on TestingBot.

## Break test

```javascript
tb:break
```

This will add a breakpoint to the test and pause it, so that you can investigate it manually.  
When you go to the test result page on TestingBot, a live session will appear so that you can debug with mouse and keyboard.

## Test Result

```javascript
tb:test-result=true
```

Possible values: passed, true, failed, false

This will set the test as passed (`"passed"` or `true`) or failed (`"failed"` or `false`) on TestingBot.

## Test Build

```javascript
tb:test-build=my build
```

Sets the test's build name.

## Test Tags

```javascript
tb:test-tags=tag1,tag2
```

Comma-separated list of tags.

Sets the test's tags.

## Test Context

```javascript
tb:test-context=my context
```

Logs the given context and prints it on the TestingBot test result page, in the Selenium command list.

## Test Info

```javascript
tb:test-info={'build':'my first build', 'name':'my new test', 'public':true}
```

JSON-formatted dictionary with optional keys: `'build'`, `'name'`, `'public'`, `'status_message'`, `'extra'`

Pass in a JSON dictionary with various fields to update the test's meta-data on TestingBot.

### Looking for more help?

Have questions or need more information? Reach out via email or Slack.

[Email us](https://testingbot.com/contact/new) [Join our Slack](https://join.slack.com/t/testingb0t/shared_invite/zt-3bcw9xch-jk19~6XPs_xBrsAgAedkCw)
