diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js
index 2d979e4486221ed08b770c2a572572d4f2e8f498..1d1ba1e6a849456058d25356fcf989d6cd40fe8b 100644
--- a/test/helpers/selenium-helper.js
+++ b/test/helpers/selenium-helper.js
@@ -14,6 +14,8 @@ class SeleniumHelper {
             'clickText',
             'clickButton',
             'clickXpath',
+            'elementIsVisible',
+            'elementIsNotVisible',
             'findByText',
             'findByXpath',
             'getDriver',
@@ -24,6 +26,13 @@ class SeleniumHelper {
         ]);
     }
 
+    elementIsVisible (element) {
+        return this.driver.wait(until.elementIsVisible(element));
+    }
+    elementIsNotVisible (element) {
+        return this.driver.wait(until.elementIsNotVisible(element));
+    }
+
     get scope () {
         // List of useful xpath scopes for finding elements
         return {
diff --git a/test/integration/sprites.test.js b/test/integration/sprites.test.js
index 8e57fc1a6a2aec31b2c67d313868e3c83196fb36..178fb6b984f75981cf160cc014894d4daaf4b5f1 100644
--- a/test/integration/sprites.test.js
+++ b/test/integration/sprites.test.js
@@ -4,6 +4,7 @@ import SeleniumHelper from '../helpers/selenium-helper';
 const {
     clickText,
     clickXpath,
+    elementIsVisible,
     findByText,
     findByXpath,
     getDriver,
@@ -124,4 +125,27 @@ describe('Working with sprites', () => {
         const logs = await getLogs();
         await expect(logs).toEqual([]);
     });
+
+    test('Use browser back button to close library', async () => {
+        await driver.get('https://www.google.com');
+        await loadUri(uri);
+        await clickXpath('//button[@title="Try It"]');
+        await clickText('Costumes');
+        await clickXpath('//button[@aria-label="Choose a Sprite"]');
+        const abbyElement = await findByText('Abby'); // Should show editor for new costume
+        await elementIsVisible(abbyElement);
+        await driver.navigate().back();
+        try {
+            // should throw error because library is no longer visible
+            await elementIsVisible(abbyElement);
+            throw 'ShouldNotGetHere'; // eslint-disable-line no-throw-literal
+        } catch (e) {
+            expect(e.constructor.name).toEqual('StaleElementReferenceError');
+        }
+        const costumesElement = await findByText('Costumes'); // Should show editor for new costume
+        await elementIsVisible(costumesElement);
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
+
 });