\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{petapetapeta} \pdfinfo{ /Title (selenium.pdf) /Creator (Cheatography) /Author (petapetapeta) /Subject (Selenium Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{214ECC} \definecolor{LightBackground}{HTML}{F1F3FB} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Selenium Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{petapetapeta} via \textcolor{DarkBackground}{\uline{cheatography.com/21143/cs/3953/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}petapetapeta \\ \uline{cheatography.com/petapetapeta} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 12th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Concepts}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Actions}} are commands that generally manipulate the state of the application. They do things like "click this link" and "select that option". If an Action fails, or has an error, the execution of the current test is stopped. \newline % Row Count 5 (+ 5) {\bf{Accessors}} examine the state of the application and store the results in variables, e.g. "storeTitle". \newline % Row Count 8 (+ 3) {\bf{Assertions}} are like Accessors, but they verify that the state of the application conforms to what is expected. Examples include "make sure the page title is X" and "verify that this checkbox is checked". \newline % Row Count 13 (+ 5) Commands often use {\bf{locators}} to find and match elements on a page. For an explanation of how this functions look here: \seqsplit{https://thenewcircle.com/static/bookshelf/selenium\_tutorial/locators.html}% Row Count 17 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Actions}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{click}} Clicks on a link, button, checkbox or radio button \newline % Row Count 2 (+ 2) {\bf{close}} Simulates the user clicking the "close" button in the titlebar of a popup window or tab. \newline % Row Count 4 (+ 2) {\bf{open}} Opens an URL in the test frame. \newline % Row Count 5 (+ 1) {\bf{select ( selectLocator,optionLocator )}} Select an option from a drop-down using an option locator. selectLocator locates the dropdown in the same manner as {\bf{click}}. optionLocator selects the option from the dropdown as follows: "label=\{text-of-option\}" \newline % Row Count 11 (+ 6) {\bf{selectWindow}} Selects a popup window using a window locator; once a popup window has been selected, all commands go to that window. To select the main window again, use selectWindow(null). The popup window can be chosen with 'title=\{title-of-window\}' \newline % Row Count 17 (+ 6) {\bf{type ( locator,value )}} Sets the value of an input field, as though you typed it in.% Row Count 19 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Accessors}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{In the following functions {\bf{variableName}} is the name of the variable to be stored. This variable is used to access the value in later commands by accessing it with \$\{variableName\} \newline % Row Count 4 (+ 4) {\bf{storeAttribute(attributeLocator, variableName)}} Gets the value of an element attribute. attributeLocator is an element locator followed by an @ sign and then the name of the attribute fx. "div\#button@name". \newline % Row Count 9 (+ 5) {\bf{storeLocation (variableName)}} Gets the absolute URL of the current page. \newline % Row Count 11 (+ 2) {\bf{storeText(locator, variableName)}} Gets the text of an element. \newline % Row Count 13 (+ 2) {\bf{storeTitle(variableName)}} Gets the title of the current page. \newline % Row Count 15 (+ 2) {\bf{storeXpathCount(xpath, variableName)}} Returns the number of nodes that match the specified xpath, eg. "//table" would give the number of tables. \newline % Row Count 18 (+ 3) {\bf{storeElementPresent(locator, variableName)}} Verifies that the specified element is somewhere on the page.% Row Count 21 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Assertions}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{There are three modes of each assertion: assert, verify, and waitFor. \newline % Row Count 2 (+ 2) {\bf{waitFor}} commands waits until some condition become true. If the condition has not become true within a specified time-out, test will be considered as failed. \newline % Row Count 6 (+ 4) If a {\bf{verify}} command is failed the test script continues to run with the entry in the error log. \newline % Row Count 9 (+ 3) If {\bf{assert}} command is failed the test script is aborted. \newline % Row Count 11 (+ 2) The following four commands can be used with all the modes, but are only shown with assert. \newline % Row Count 13 (+ 2) {\bf{assertTitle(pattern)}} Check the title of the page against the pattern. \newline % Row Count 15 (+ 2) {\bf{assertElementPresent(locator)}} Check that the specified element is present somewhere on the page. \newline % Row Count 18 (+ 3) {\bf{assertChecked(locator)}} Check that the specified element is checked or not. \newline % Row Count 20 (+ 2) {\bf{assertAlert(pattern)}} Check the message of a JavaScript alert and click OK.% Row Count 22 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Useful references}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A good description on how to implement Selenium in a company: \seqsplit{https://thenewcircle.com/static/bookshelf/selenium\_tutorial/selenium\_in\_your\_company.html} \newline % Row Count 4 (+ 4) A description of different strategies for creating tests: \seqsplit{https://thenewcircle.com/static/bookshelf/selenium\_tutorial/testing\_strategies.html}% Row Count 7 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}