[{"data":1,"prerenderedAt":581},["ShallowReactive",2],{"SiteFooter_cLEacilcm59lTjFJjLY6mXNWLL0ETtzOIiZwIHgDpy0":3,"doc-\u002Fdocs\u002Frecording\u002Farguments":17,"docs-nav":442,"nav-compare":561,"editor-p58kwc":571,"editor-14vd46g":573,"editor-zu5u2h":575,"editor-1dyhptf":577,"editor-5f3iu5":579},["Island",4],{"key":5,"result":6},"SiteFooter_cLEacilcm59lTjFJjLY6mXNWLL0ETtzOIiZwIHgDpy0",{"head":7},{"style":8},[9,11,13,15],{"innerHTML":10},".site-footer[data-v-8bb1d4ae]{border-top:1px solid var(--line);background:var(--chrome);padding:var(--sp-8) var(--gutter) var(--sp-10);gap:var(--sp-6);flex-direction:column;display:flex}.links[data-v-8bb1d4ae]{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));max-width:62rem;display:grid}.links a[data-v-8bb1d4ae]{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line);display:flex}.links a[data-v-8bb1d4ae]:focus-visible,.links a[data-v-8bb1d4ae]:hover{border-color:var(--line-strong)}.links[data-v-8bb1d4ae] .mark,.links[data-v-8bb1d4ae] .rf-mark{width:1.35rem;height:1.35rem;color:var(--dim);flex:none;margin-top:.1rem}.links a[data-v-8bb1d4ae]:hover .mark,.links a[data-v-8bb1d4ae]:hover .rf-mark{color:var(--red)}.links span[data-v-8bb1d4ae]{flex-direction:column;gap:2px;min-width:0;display:flex}.links b[data-v-8bb1d4ae]{font-family:var(--font-display);font-size:.85rem;font-weight:400}.links small[data-v-8bb1d4ae]{color:var(--faint);font-size:.78rem}.colophon[data-v-8bb1d4ae]{color:var(--faint);margin:0;font-size:.75rem}@supports (corner-shape:bevel){.links a[data-v-8bb1d4ae]{corner-shape:bevel}}",{"innerHTML":12},".mark[data-v-cc0d96a5]{vertical-align:-.125em;flex:none;width:1em;height:1em}",{"innerHTML":14},".mark[data-v-26f5673d]{vertical-align:-.125em;flex:none;width:1em;height:1em}",{"innerHTML":16},".rf-mark[data-v-26317b3e]{fill:currentColor;stroke:none;flex:none}",{"id":18,"title":19,"body":20,"description":433,"extension":434,"meta":435,"navigation":436,"order":86,"path":437,"section":438,"seo":439,"stem":440,"__hash__":441},"docs\u002Fdocs\u002Frecording\u002Farguments.md","Keyword arguments",{"type":21,"value":22,"toc":425},"minimark",[23,37,61,126,143,148,162,165,197,208,215,219,226,235,238,242,245,256,284,299,314,318,329,338,345,349,359,363,372,418,421],[24,25,26,27,31,32,36],"p",{},"A keyword that always creates the account ",[28,29,30],"code",{},"jane@example.com"," is useful once.\nMake the name and the password ",[33,34,35],"strong",{},"arguments"," while you record, and the same\nkeyword creates any account. Values in the toolbar that can become an argument\nare underlined; click one.",[38,39,44],"doc-video",{"alt":40,"poster":41,"src":42,":controls":43},"A Create account form with the fields Email, Confirm email, Password and Confirm password, and the recorder toolbar beside it with five recorded Keyword Calls. A click on the value jane@example.com opens the argument dialog; jane is marked, the name name is typed and the default checkbox is cleared. The toolbar offers to use the argument in the Confirm email call too, and Replace accepts. The same follows for the password Secret-123 as the argument password. The toolbar lists the arguments name and password.","\u002Fvideos\u002Frecorder\u002Floop-create-account.jpg","\u002Fvideos\u002Frecorder\u002Floop-create-account.mp4","false",[24,45,46,49,50,53,54,49,57,60],{},[28,47,48],{},"jane"," becomes ",[28,51,52],{},"${name}",", ",[28,55,56],{},"Secret-123",[28,58,59],{},"${password}",", each in both fields.",[62,63,68],"pre",{"className":64,"code":65,"language":66,"meta":67,"style":67},"language-robot shiki shiki-themes github-light github-dark","*** Keywords ***\nCreate Account\n    [Tags]    recorded\n    [Arguments]    ${name}    ${password}\n    Fill Text    role=textbox[name=\"Email\"s]    ${name}@example.com\n    Fill Text    role=textbox[name*=\"Confirm email\"i]    ${name}@example.com\n    Fill Text    role=textbox[name=\"Password\"s]    ${password}\n    Fill Text    role=textbox[name*=\"Confirm password\"i]    ${password}\n    Click    role=button[name*=\"Create account\"i]\n","robot","",[28,69,70,78,84,90,96,102,108,114,120],{"__ignoreMap":67},[71,72,75],"span",{"class":73,"line":74},"line",1,[71,76,77],{},"*** Keywords ***\n",[71,79,81],{"class":73,"line":80},2,[71,82,83],{},"Create Account\n",[71,85,87],{"class":73,"line":86},3,[71,88,89],{},"    [Tags]    recorded\n",[71,91,93],{"class":73,"line":92},4,[71,94,95],{},"    [Arguments]    ${name}    ${password}\n",[71,97,99],{"class":73,"line":98},5,[71,100,101],{},"    Fill Text    role=textbox[name=\"Email\"s]    ${name}@example.com\n",[71,103,105],{"class":73,"line":104},6,[71,106,107],{},"    Fill Text    role=textbox[name*=\"Confirm email\"i]    ${name}@example.com\n",[71,109,111],{"class":73,"line":110},7,[71,112,113],{},"    Fill Text    role=textbox[name=\"Password\"s]    ${password}\n",[71,115,117],{"class":73,"line":116},8,[71,118,119],{},"    Fill Text    role=textbox[name*=\"Confirm password\"i]    ${password}\n",[71,121,123],{"class":73,"line":122},9,[71,124,125],{},"    Click    role=button[name*=\"Create account\"i]\n",[62,127,131],{"className":128,"code":129,"language":130,"meta":67,"style":67},"language-robot-repl shiki shiki-themes github-light github-dark","Create Account    jane    Secret-123\nCreate Account    max    ${NEW_PASSWORD}\n","robot-repl",[28,132,133,138],{"__ignoreMap":67},[71,134,135],{"class":73,"line":74},[71,136,137],{},"Create Account    jane    Secret-123\n",[71,139,140],{"class":73,"line":80},[71,141,142],{},"Create Account    max    ${NEW_PASSWORD}\n",[144,145,147],"h2",{"id":146},"the-argument-dialog","The argument dialog",[149,150,153],"doc-figure",{"alt":151,"src":152},"The argument dialog: the value jane@example.com with jane marked, the argument name name, the cleared box Use the marked value as default, and the buttons Cancel and Make argument.","\u002Fimages\u002Frecorder\u002Ftoolbar-argument-dialog.png",[24,154,155,156,158,159,161],{},"Only the marked part, ",[28,157,48],{},", becomes the argument ",[28,160,52],{},", without a default.",[24,163,164],{},"Clicking a value opens a dialog with three things to decide:",[166,167,168,178,191],"ol",{},[169,170,171,174,175,177],"li",{},[33,172,173],{},"Which part."," The value is shown in full. Leave it unmarked to turn the\nwhole value into the argument, as with the password, or mark a part of it —\nonly that part becomes the argument, as ",[28,176,48],{}," in the address. The marked\npart stays highlighted when you move on to the name.",[169,179,180,183,184,187,188,190],{},[33,181,182],{},"The name",", as ",[28,185,186],{},"name"," or as ",[28,189,52],{},".",[169,192,193,196],{},[33,194,195],{},"Whether the recorded value becomes the default."," Checked, callers may leave\nthe argument out; unchecked, they must pass it. A new account needs a new\nname and nobody wants a password built into a keyword, so both are unchecked\nhere.",[24,198,199,203,204,207],{},[200,201,202],"em",{},"Make argument"," applies it. A name the recorder cannot accept is shown in the\ndialog, which stays open so you can correct it; ",[200,205,206],{},"Cancel",", Escape or a click\nbeside the dialog close it without changes.",[24,209,210,211,214],{},"Arguments without a default always come first, as Robot Framework requires. Give\na default only to arguments recorded after all those without one, and\n",[28,212,213],{},"[Arguments]"," keeps the order of the recording.",[144,216,218],{"id":217},"part-of-a-value","Part of a value",[24,220,221,222,225],{},"Marking a part is how addresses, URLs, IDs and composed texts become arguments.\nThe rest of the value stays as it was — here ",[28,223,224],{},"@example.com"," — escaped where\nRobot Framework needs it:",[62,227,229],{"className":64,"code":228,"language":66,"meta":67,"style":67},"Fill Text    role=textbox[name=\"Email\"s]    ${name}@example.com\n",[28,230,231],{"__ignoreMap":67},[71,232,233],{"class":73,"line":74},[71,234,228],{},[24,236,237],{},"A value that already contains an argument cannot get a second one.",[144,239,241],{"id":240},"selectors","Selectors",[24,243,244],{},"Selectors can become arguments too — whole, or in part. That turns one recorded\nclick into a keyword for a whole family of elements:",[38,246,250],{"alt":247,"poster":248,"src":249},"The Getting started page. A click on Assertions in the side navigation is recorded. In the toolbar the selector of that click is opened in the argument dialog, the word Assertions inside it is marked, and the argument is named chapter.","\u002Fvideos\u002Frecorder\u002Fargument-from-a-selector.jpg","\u002Fvideos\u002Frecorder\u002Fargument-from-a-selector.mp4",[24,251,252,253,190],{},"The chapter name inside the selector becomes ",[28,254,255],{},"${chapter}",[62,257,259],{"className":64,"code":258,"language":66,"meta":67,"style":67},"*** Keywords ***\nOpen A Docs Chapter\n    [Tags]    recorded\n    [Arguments]    ${chapter}=Assertions\n    Click    role=link[name=\"${chapter}\"s]\n",[28,260,261,265,270,274,279],{"__ignoreMap":67},[71,262,263],{"class":73,"line":74},[71,264,77],{},[71,266,267],{"class":73,"line":80},[71,268,269],{},"Open A Docs Chapter\n",[71,271,272],{"class":73,"line":86},[71,273,89],{},[71,275,276],{"class":73,"line":92},[71,277,278],{},"    [Arguments]    ${chapter}=Assertions\n",[71,280,281],{"class":73,"line":98},[71,282,283],{},"    Click    role=link[name=\"${chapter}\"s]\n",[62,285,287],{"className":128,"code":286,"language":130,"meta":67,"style":67},"Open A Docs Chapter    Finding elements\nOpen A Docs Chapter    chapter=Waiting and promises\n",[28,288,289,294],{"__ignoreMap":67},[71,290,291],{"class":73,"line":74},[71,292,293],{},"Open A Docs Chapter    Finding elements\n",[71,295,296],{"class":73,"line":80},[71,297,298],{},"Open A Docs Chapter    chapter=Waiting and promises\n",[24,300,301,302,305,306,309,310,313],{},"Mark only the part that varies. The structure around it — ",[28,303,304],{},"role=link",",\n",[28,307,308],{},"[name=…]",", the ",[28,311,312],{},"s"," that makes the match exact — is what keeps the selector\nprecise.",[144,315,317],{"id":316},"the-same-value-elsewhere","The same value elsewhere",[24,319,320,321,324,325,328],{},"When the value you made an argument occurs in other Keyword Calls of the same\nkeyword, the toolbar offers to use the argument there too. Each occurrence is\nlisted with a checkbox, all checked: ",[200,322,323],{},"Replace"," uses the argument for the checked\nones, ",[200,326,327],{},"Skip"," leaves them as they are.",[149,330,333],{"alt":331,"src":332},"The toolbar offers to use the new argument name for jane in the Fill Text call of the Confirm email field, where jane is marked red like in the argument dialog, with a checked box and the buttons Skip and Replace.","\u002Fimages\u002Frecorder\u002Ftoolbar-offer.png",[24,334,335,337],{},[28,336,48],{}," also occurs in the confirmed address; the occurrence is offered, already checked, with the part it replaces marked.",[24,339,340,341,344],{},"That is how both email fields and both password fields of ",[28,342,343],{},"Create Account"," get\nthe same argument: one argument per value, replaced in every field that repeats it.",[144,346,348],{"id":347},"while-you-keep-typing","While you keep typing",[24,350,351,352,354,355,358],{},"Make an argument from a field you are still typing into, and the argument\nstays: the Keyword Call keeps ",[28,353,52],{},", and its default follows what you type.\n",[200,356,357],{},"Undo"," removes an action together with any argument that only it used — a\nrecorded keyword never declares an argument it does not use.",[144,360,362],{"id":361},"names","Names",[24,364,365,366,368,369,371],{},"An argument name is plain — ",[28,367,186],{}," — or written as a variable — ",[28,370,52],{},".\nIt must:",[373,374,375,385,395,415],"ul",{},[169,376,377,378,381,382,384],{},"start with a letter or ",[28,379,380],{},"_"," and contain only letters, digits and ",[28,383,380],{},";",[169,386,387,388,391,392,384],{},"not be a Robot Framework built-in variable such as ",[28,389,390],{},"${TEMPDIR}"," or ",[28,393,394],{},"${SPACE}",[169,396,397,398,53,401,404,405,407,408,404,411,414],{},"not be taken already in the keyword, in any spelling Robot Framework treats as\nequal — ",[28,399,400],{},"Name",[28,402,403],{},"na_me"," and ",[28,406,186],{}," are one name. Variables the recorder\nassigns itself, like ",[28,409,410],{},"${download}",[28,412,413],{},"${upload}",", count too;",[169,416,417],{},"be at most 200 characters long.",[24,419,420],{},"The dialog checks while you type and again when you confirm.",[422,423,424],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":67,"searchDepth":80,"depth":80,"links":426},[427,428,429,430,431,432],{"id":146,"depth":80,"text":147},{"id":217,"depth":80,"text":218},{"id":240,"depth":80,"text":241},{"id":316,"depth":80,"text":317},{"id":347,"depth":80,"text":348},{"id":361,"depth":80,"text":362},"Turn a recorded value, part of it or part of a selector into an argument while you record — with or without a default, and everywhere it occurs.","md",{},true,"\u002Fdocs\u002Frecording\u002Farguments","recording",{"title":19,"description":433},"docs\u002Frecording\u002Farguments","yA7e8zO94yFiTSk-bPZwurcAm1B8UuIhOstpU7UsoEM",[443,448,452,456,460,464,468,473,477,481,485,489,493,498,502,506,510,515,519,523,527,528,532,536,540,544,548,552,557],{"path":444,"title":445,"description":446,"section":447,"order":98},"\u002Fdocs\u002Fconcepts\u002Farchitecture","How Browser works","Python, a Node process and Playwright — what runs where, and where the files land.","concepts",{"path":449,"title":450,"description":451,"section":447,"order":86},"\u002Fdocs\u002Fconcepts\u002Fassertions","Assertions","Almost every getter can assert, every assertion retries, and each return type allows different operators. The complete AssertionEngine reference.",{"path":453,"title":454,"description":455,"section":447,"order":74},"\u002Fdocs\u002Fconcepts\u002Fbrowser-context-page","Browser, context and page","The three layers Playwright is built on — and why a new context is the cheapest clean slate you will ever get.",{"path":457,"title":458,"description":459,"section":447,"order":104},"\u002Fdocs\u002Fconcepts\u002Flogging","Logging and debugging","Four places Browser tells you what happened — log.html, the Playwright log, traces and coverage.",{"path":461,"title":462,"description":463,"section":447,"order":80},"\u002Fdocs\u002Fconcepts\u002Fselectors","Finding elements","Which selector strategy to reach for, why the order matters, and how to chain across iframes and shadow DOM.",{"path":465,"title":466,"description":467,"section":447,"order":92},"\u002Fdocs\u002Fconcepts\u002Fwaiting","Waiting and promises","Most waiting is already done for you. This is the rest of it — Wait For Condition, and how to run keywords in parallel with Promise To.",{"path":469,"title":470,"description":471,"section":472,"order":98},"\u002Fdocs\u002Fextending\u002Fbrowser-as-a-base","Browser as a base","Own the Browser instance in your own library — what you get free, what one line restores, and what you build yourself.","extending",{"path":474,"title":475,"description":476,"section":472,"order":80},"\u002Fdocs\u002Fextending\u002Fjavascript-basics","Just enough JavaScript","The JavaScript you need to write extensions and Evaluate JavaScript, for people who write Python.",{"path":478,"title":479,"description":480,"section":472,"order":86},"\u002Fdocs\u002Fextending\u002Fjavascript-extensions","JavaScript extensions","Add keywords that run on the Node side with full Playwright access — and attach a debugger to them.",{"path":482,"title":483,"description":484,"section":472,"order":92},"\u002Fdocs\u002Fextending\u002Fpython-libraries","Your own Python library","Move business logic out of Robot Framework and keep Browser exactly as it is.",{"path":486,"title":487,"description":488,"section":472,"order":74},"\u002Fdocs\u002Fextending\u002Fpython-plugins","Python plugins","Add or replace keywords from Python, with access to the library's own API and to the Node side.",{"path":490,"title":491,"description":492,"section":472,"order":104},"\u002Fdocs\u002Fextending\u002Ftranslations","Translating keywords","Using a translation package to get keyword names and documentation in your language, and writing one for a language nobody has covered yet.",{"path":494,"title":495,"description":496,"section":497,"order":92},"\u002Fdocs\u002Fmobile\u002Fdevice-list","Every device descriptor","The full list of names Get Device accepts, with the viewport, pixel ratio, touch and engine each one sets — filterable and sortable.","mobile",{"path":499,"title":500,"description":501,"section":497,"order":80},"\u002Fdocs\u002Fmobile\u002Fdevices","Emulating a device","Device descriptors, what the six or seven properties they set actually change, and the one that emulation cannot give you.",{"path":503,"title":504,"description":505,"section":497,"order":74},"\u002Fdocs\u002Fmobile\u002Fresponsive","Testing responsive pages","Why a browser at a phone-sized viewport tests responsiveness properly, what emulation cannot tell you, and where real devices actually belong.",{"path":507,"title":508,"description":509,"section":497,"order":86},"\u002Fdocs\u002Fmobile\u002Ftouch","Touch, permissions and location","Tap and why it needs hasTouch, granting camera or notifications without a dialog, faking where the user is, and the gestures Browser has no keyword for.",{"path":511,"title":512,"description":513,"section":514,"order":86},"\u002Fdocs\u002Foperations\u002Fdocker","Running in Docker","The published Browser image, the four docker run flags that matter, and why running as root breaks Chromium.","operations",{"path":516,"title":517,"description":518,"section":514,"order":92},"\u002Fdocs\u002Foperations\u002Fdocker-images","Building your own image","Extending the published image with your dependencies, the version lock between Browser and Playwright, and using it as a CI job container.",{"path":520,"title":521,"description":522,"section":514,"order":80},"\u002Fdocs\u002Foperations\u002Fenvironment-variables","Environment variables","The variables that change how Browser behaves, which of them are safe in production, and the import parameters that should usually be preferred.",{"path":524,"title":525,"description":526,"section":514,"order":74},"\u002Fdocs\u002Foperations\u002Fnode-process","The Node process","Browser starts a Node process to talk to Playwright. What that costs, how to share one across parallel runs, and how to pass it Node flags.",{"path":437,"title":19,"description":433,"section":438,"order":86},{"path":529,"title":530,"description":531,"section":438,"order":98},"\u002Fdocs\u002Frecording\u002Ffiles","Where recorded keywords go","The suite file, a resource file or only the log; written live after every action; what the recorder changes in a file and what it never touches.",{"path":533,"title":534,"description":535,"section":438,"order":110},"\u002Fdocs\u002Frecording\u002Fpractice","Good practice and limits","How to record keywords worth keeping, what to check before you commit one, what the recorder cannot do, and what to do when it goes wrong.",{"path":537,"title":538,"description":539,"section":438,"order":74},"\u002Fdocs\u002Frecording\u002Frecord-keywords","Recording keywords","Click through the page and get a reusable user keyword, written into your suite while you work. Record Keyword and Record Keywords in five minutes.",{"path":541,"title":542,"description":543,"section":438,"order":104},"\u002Fdocs\u002Frecording\u002Fselectors","Recording selectors","Pick an element in the live browser and get a selector for it — Playwright's or a CSS one, checked against the page while you edit it.",{"path":545,"title":546,"description":547,"section":438,"order":80},"\u002Fdocs\u002Frecording\u002Ftoolbar","The recorder toolbar","Name and start keywords, save, undo and discard them, end the session, and keep the toolbar out of the page's way.",{"path":549,"title":550,"description":551,"section":438,"order":92},"\u002Fdocs\u002Frecording\u002Fwhat-gets-recorded","What gets recorded","Which Browser keyword each action becomes, how popups, dialogs, downloads and uploads are handled, recording assertions, and the selectors the recorder writes.",{"path":553,"title":554,"description":555,"section":556,"order":80},"\u002Fdocs\u002Fstart\u002Fgetting-started","Getting started","Install Browser, write a first test, and run it.","start",{"path":558,"title":559,"description":560,"section":556,"order":74},"\u002Fdocs\u002Fstart\u002Finstallation","Installation","The two ways to install Browser — with a bundled Node.js runtime, or with one you provide yourself — and how to upgrade and remove each.",[562,565,568],{"to":563,"label":564},"\u002Fwhy\u002Fvs-cypress","vs Cypress",{"to":566,"label":567},"\u002Fwhy\u002Fvs-playwright","vs Playwright Test",{"to":569,"label":570},"\u002Fwhy\u002Fvs-seleniumlibrary","vs SeleniumLibrary",[572],"\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF6B5E;font-weight:bold\">*** Keywords ***\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Create Account\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#C9A6E9\">    [Tags]\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    recorded\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#C9A6E9\">    [Arguments]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">name\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">password\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Fill Text\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=textbox[name=\"Email\"s]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">name\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">@example.com\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Fill Text\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=textbox[name*=\"Confirm email\"i]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">name\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">@example.com\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Fill Text\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=textbox[name=\"Password\"s]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">password\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Fill Text\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=textbox[name*=\"Confirm password\"i]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">password\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Click\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=button[name*=\"Create account\"i]\u003C\u002Fspan>\u003C\u002Fspan>",[574],"\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Create Account\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    jane    Secret-123\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Create Account\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    max    \u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">NEW_PASSWORD\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003C\u002Fspan>",[576],"\u003Cspan class=\"line\">\u003Cspan style=\"color:#96A2A8;font-style:italic\">Fill Text    role=textbox[name=\"Email\"s]    ${name}@example.com\u003C\u002Fspan>\u003C\u002Fspan>",[578],"\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF6B5E;font-weight:bold\">*** Keywords ***\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Open A Docs Chapter\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#C9A6E9\">    [Tags]\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    recorded\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#C9A6E9\">    [Arguments]\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">    ${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">chapter\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">=Assertions\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">    Click\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    role=link[name=\"\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">${\u003C\u002Fspan>\u003Cspan style=\"color:#FFB86B\">chapter\u003C\u002Fspan>\u003Cspan style=\"color:#A9B4BA\">}\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">\"s]\u003C\u002Fspan>\u003C\u002Fspan>",[580],"\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Open A Docs Chapter\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    Finding elements\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan style=\"color:#2BD9CC\">Open A Docs Chapter\u003C\u002Fspan>\u003Cspan style=\"color:#E0D3A3\">    chapter=Waiting and promises\u003C\u002Fspan>\u003C\u002Fspan>",1793560509097]