/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ async function test(context, commands) { await commands.navigate("https://www.example.com"); await commands.wait.byTime(15000); // Fill in: let username = "some_user@mail.com"; let passworld = "topsecretpassword"; // We start by navigating to the login page. await commands.navigate("https://www.facebook.com"); // When we fill in a input field/click on a link we wanna // try/catch that if the HTML on the page changes in the feature // sitespeed.io will automatically log the error in a user friendly // way, and the error will be re-thrown so you can act on it. await commands.wait.byTime(5000); // Add text into an input field, finding the field by id await commands.addText.bySelector(username, "input[name=email]"); await commands.wait.byTime(2000); await commands.addText.bySelector(passworld, "input[name=pass]"); await commands.wait.byTime(2000); // Start the measurement before we click on the // submit button. Sitespeed.io will start the video recording // and prepare everything. // Find the sumbit button and click it and then wait // for the pageCompleteCheck to finish await commands.measure.start("pageload"); // There are two variants of the facebook login page: try { await commands.click.bySelectorAndWait("button[name=login]"); } catch (e) { await commands.click.bySelectorAndWait("input[type=submit]"); } // Stop and collect the measurement before the next page we want to measure await commands.measure.stop(); } module.exports = { test, owner: "Performance Team", name: "Facebook", description: "Measures time to log in to Facebook", };