└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # laravel-dusk-cheatsheet 2 | Cheat sheet for using Laravel Dusk 3 | 4 | ### Running Dusk Test 5 | 6 | * Running All dusk test 7 | 8 | php artisan dusk 9 | 10 | * Running single dusk test method 11 | 12 | php artisan dusk --filter testMethodName 13 | 14 | * Running all methods of test class 15 | 16 | php artisan dusk --filter testClassName 17 | 18 | ### Creating Dusk Test 19 | 20 | * Creating new dusk test 21 | 22 | php artisan dusk:make ExampleTest 23 | 24 | * Creating new dusk test inside a folder 25 | 26 | php artisan dusk:make Folder/ExampleTest 27 | 28 | ### Visiting URL 29 | 30 | * Visiting Home Page of URL 31 | 32 | $browser->visit('/') 33 | 34 | * Visiting URL via named route 35 | 36 | $browser->visit(route('welcome')); 37 | 38 | * Visiting External URL 39 | 40 | $browser->visit('https://www.google.com') 41 | 42 | ### Element Operation 43 | 44 | * Click Element 45 | 46 | $browser->click('Element Selector'); 47 | 48 | * Clicking Link 49 | 50 | $browser->clickLink('Link Test Here'); 51 | 52 | * Pressing Button 53 | 54 | $browser->press('Button Test Here'); 55 | 56 | ### Locating Elements 57 | 58 | * Multiple Elements 59 | 60 | $browser->elements($selector) 61 | 62 | * Single Elements 63 | 64 | $browser->element($selector) 65 | 66 | ### Form Input 67 | 68 | * Input Box 69 | 70 | $browser->value($selector) 71 | //or 72 | $browser->type($selector) 73 | 74 | $browser->append($field, $value) 75 | 76 | * Select Box 77 | 78 | $browser->select($field) //Random value 79 | 80 | $browser->select($field, $value) 81 | 82 | * Radio Button 83 | 84 | $browser->radio($field, $value) 85 | 86 | * Checkbox 87 | 88 | $browser->check($field, $optionalValue) 89 | 90 | $browser->uncheck($field, $optionalValue) 91 | 92 | * Attach File 93 | 94 | $browser->attach($field, $path) 95 | 96 | * TextArea 97 | 98 | $browser->keys($field, $value) 99 | 100 | * CLear Field 101 | 102 | $browser->clear($field) 103 | 104 | ### Authentication 105 | 106 | * Login 107 | 108 | $browser->loginAs('user@email.com'); 109 | //Or 110 | $browser->loginAs($userObject); 111 | //Or User-id 112 | $browser->loginAs(3); 113 | * Logout 114 | 115 | $browser->logout(); 116 | 117 | * Assert user authenticated 118 | 119 | $browser->assertAuthenticated($guardOptional); 120 | 121 | * Assert authenticated as user 122 | 123 | $browser->assertAuthenticatedAs($user, $guardOptional); 124 | 125 | * Assert guest user 126 | 127 | $browser->assertGuest(); 128 | 129 | 130 | ### Browser Options 131 | 132 | * Refresh the Page 133 | 134 | $browser->refresh(); 135 | 136 | * Navigate to the previous page. 137 | 138 | $browser->back(); 139 | 140 | * Maximize the browser window 141 | 142 | $browser->maximize(); 143 | 144 | * Resize the browser window 145 | 146 | $brwoser->resize($width, $height); 147 | 148 | * Make the browser window as large as the content. 149 | 150 | $browser->fitContent() 151 | 152 | * Move the browser window 153 | 154 | $browser->move($x, $y) 155 | 156 | * Scroll screen to element at the given selector. 157 | 158 | $browser->scrollTo($selector) 159 | 160 | * Take a screenshot and store it with the given name. 161 | 162 | $browser->screenshot($name) 163 | 164 | * Store the console output with the given name. 165 | 166 | $browser->storeConsoleLog($name) 167 | 168 | * Close the browser 169 | 170 | $browser->quit(); 171 | 172 | * Dump Page Source 173 | 174 | $browser->dump(); 175 | 176 | * Pause execution of test and open Laravel Tinker 177 | 178 | $browser->tinker(); 179 | 180 | * Stop Running the test but leave the browser open 181 | 182 | $browser->stop(); 183 | 184 | * Get Current URL of the page 185 | 186 | $browser->driver->getCurrentURL(); 187 | 188 | ### Waiting 189 | 190 | * Pause for the given amount of milliseconds. 191 | 192 | $browser->pause($milliseconds) 193 | 194 | * Wait for the given selector to be visible. 195 | 196 | $browser->waitFor($selector, $secondsOptional) 197 | 198 | * Wait for the given selector to be removed. 199 | 200 | $browser->waitUntilMissing($selector, $secondsOptional) 201 | 202 | * Wait for the given text to be visible. 203 | 204 | $browser->waitForText($text, $secondsOptional) 205 | 206 | * Wait for the given link to be visible. 207 | 208 | $browser->waitForLink($link, $secondsOptional) 209 | 210 | * Wait for the given location. 211 | 212 | $browser->waitForLocation($path, $secondsOptional) 213 | 214 | * Wait for the current page to reload. 215 | 216 | $browser->waitForReload(); 217 | 218 | 219 | ### Using Dusk Pages 220 | 221 | * Generating a new page 222 | 223 | php artisan dusk:page PageName 224 | 225 | * Visiting page 226 | 227 | $browser->visit(new PageName) 228 | 229 | $browser->visit(new PageName($arg)) 230 | 231 | * Page Methods 232 | 233 | $browser->visit(new PageName) 234 | ->pageMethod() 235 | 236 | //Already on page 237 | $browser->on(new PageName) 238 | ->pageMethod() 239 | 240 | ### Using Dusk Components 241 | 242 | * Generating Component 243 | 244 | php artisan dusk:component ComponentName 245 | 246 | * Using Components 247 | 248 | $browser->within(new ComponentName, function ($browser) { 249 | $browser->componentMethod(); 250 | }) 251 | 252 | 253 | 254 | 255 | ### Execute Javascript 256 | 257 | $browser->script('javascript') 258 | 259 | ### Handle Javascript Dialog 260 | 261 | * Accept Dialog 262 | 263 | $browser->acceptDialog(); 264 | 265 | * Dismiss Dialog 266 | 267 | $browser->dismissDialog(); 268 | 269 | * Type-in Dialog 270 | 271 | $browser->typeInDialog($value); 272 | 273 | 274 | ### Dusk Resources & Packages 275 | 276 | [Laravel Dusk Documentation](https://laravel.com/docs/master/dusk) 277 | 278 | [Laravel Dusk Dashboard Package](https://github.com/beyondcode/dusk-dashboard) 279 | --------------------------------------------------------------------------------