%PDF-1.4 % 4 0 obj << /S /GoTo /D (chapter.1) >> endobj 7 0 obj (Note to the Reader) endobj 8 0 obj << /S /GoTo /D (chapter.2) >> endobj 11 0 obj (Introducing Selenium) endobj 12 0 obj << /S /GoTo /D (section.2.1) >> endobj 15 0 obj (To Automate or Not to Automate? That is the Question!) endobj 16 0 obj << /S /GoTo /D (section.2.2) >> endobj 19 0 obj (Test Automation for Web Applications) endobj 20 0 obj << /S /GoTo /D (section.2.3) >> endobj 23 0 obj (Introducing Selenium) endobj 24 0 obj << /S /GoTo /D (section.2.4) >> endobj 27 0 obj (Selenium Components) endobj 28 0 obj << /S /GoTo /D (section.2.5) >> endobj 31 0 obj (Supported Browsers) endobj 32 0 obj << /S /GoTo /D (section.2.6) >> endobj 35 0 obj (Flexibility and Extensibility) endobj 36 0 obj << /S /GoTo /D (section.2.7) >> endobj 39 0 obj (About this Book) endobj 40 0 obj << /S /GoTo /D (section.2.8) >> endobj 43 0 obj (The Documentation Team) endobj 44 0 obj << /S /GoTo /D (chapter.3) >> endobj 47 0 obj (Selenium Basics) endobj 48 0 obj << /S /GoTo /D (section.3.1) >> endobj 51 0 obj (Getting Started \205 Choosing Your Selenium Tool) endobj 52 0 obj << /S /GoTo /D (section.3.2) >> endobj 55 0 obj (Introducing Selenium Commands) endobj 56 0 obj << /S /GoTo /D (section.3.3) >> endobj 59 0 obj (Test Suites) endobj 60 0 obj << /S /GoTo /D (section.3.4) >> endobj 63 0 obj (Commonly Used Selenium Commands) endobj 64 0 obj << /S /GoTo /D (section.3.5) >> endobj 67 0 obj (Summary) endobj 68 0 obj << /S /GoTo /D (chapter.4) >> endobj 71 0 obj (Selenium-IDE) endobj 72 0 obj << /S /GoTo /D (section.4.1) >> endobj 75 0 obj (Introduction) endobj 76 0 obj << /S /GoTo /D (section.4.2) >> endobj 79 0 obj (Installing the IDE) endobj 80 0 obj << /S /GoTo /D (section.4.3) >> endobj 83 0 obj (Opening the IDE) endobj 84 0 obj << /S /GoTo /D (section.4.4) >> endobj 87 0 obj (IDE Features) endobj 88 0 obj << /S /GoTo /D (section.4.5) >> endobj 91 0 obj (Building Test Cases) endobj 92 0 obj << /S /GoTo /D (section.4.6) >> endobj 95 0 obj (Running Test Cases) endobj 96 0 obj << /S /GoTo /D (section.4.7) >> endobj 99 0 obj (Using Base URL to Run Test Cases in Different Domains) endobj 100 0 obj << /S /GoTo /D (section.4.8) >> endobj 103 0 obj (Debugging) endobj 104 0 obj << /S /GoTo /D (section.4.9) >> endobj 107 0 obj (Writing a Test Suite) endobj 108 0 obj << /S /GoTo /D (section.4.10) >> endobj 111 0 obj (User Extensions) endobj 112 0 obj << /S /GoTo /D (section.4.11) >> endobj 115 0 obj (Format) endobj 116 0 obj << /S /GoTo /D (section.4.12) >> endobj 119 0 obj (Executing Selenium-IDE Tests on Different Browsers) endobj 120 0 obj << /S /GoTo /D (section.4.13) >> endobj 123 0 obj (Troubleshooting) endobj 124 0 obj << /S /GoTo /D (chapter.5) >> endobj 127 0 obj (Selenium Commands) endobj 128 0 obj << /S /GoTo /D (section.5.1) >> endobj 131 0 obj (Verifying Page Elements) endobj 132 0 obj << /S /GoTo /D (section.5.2) >> endobj 135 0 obj (Locating Elements) endobj 136 0 obj << /S /GoTo /D (section.5.3) >> endobj 139 0 obj (Matching Text Patterns) endobj 140 0 obj << /S /GoTo /D (section.5.4) >> endobj 143 0 obj (The ``AndWait'' Commands) endobj 144 0 obj << /S /GoTo /D (section.5.5) >> endobj 147 0 obj (The waitFor Commands in AJAX applications) endobj 148 0 obj << /S /GoTo /D (section.5.6) >> endobj 151 0 obj (Sequence of Evaluation and Flow Control) endobj 152 0 obj << /S /GoTo /D (section.5.7) >> endobj 155 0 obj (Store Commands and Selenium Variables) endobj 156 0 obj << /S /GoTo /D (section.5.8) >> endobj 159 0 obj (JavaScript and Selenese Parameters) endobj 160 0 obj << /S /GoTo /D (section.5.9) >> endobj 163 0 obj (echo - The Selenese Print Command) endobj 164 0 obj << /S /GoTo /D (section.5.10) >> endobj 167 0 obj (Alerts, Popups, and Multiple Windows) endobj 168 0 obj << /S /GoTo /D (chapter.6) >> endobj 171 0 obj (Selenium-RC) endobj 172 0 obj << /S /GoTo /D (section.6.1) >> endobj 175 0 obj (Introduction) endobj 176 0 obj << /S /GoTo /D (section.6.2) >> endobj 179 0 obj (How Selenium-RC Works) endobj 180 0 obj << /S /GoTo /D (section.6.3) >> endobj 183 0 obj (Installation) endobj 184 0 obj << /S /GoTo /D (section.6.4) >> endobj 187 0 obj (From Selenese to a Program) endobj 188 0 obj << /S /GoTo /D (section.6.5) >> endobj 191 0 obj (Programming Your Test) endobj 192 0 obj << /S /GoTo /D (section.6.6) >> endobj 195 0 obj (Learning the API) endobj 196 0 obj << /S /GoTo /D (section.6.7) >> endobj 199 0 obj (Reporting Results) endobj 200 0 obj << /S /GoTo /D (section.6.8) >> endobj 203 0 obj (Adding Some Spice to Your Tests) endobj 204 0 obj << /S /GoTo /D (section.6.9) >> endobj 207 0 obj (Server Options) endobj 208 0 obj << /S /GoTo /D (section.6.10) >> endobj 211 0 obj (Specifying the Path to a Specific Browser) endobj 212 0 obj << /S /GoTo /D (section.6.11) >> endobj 215 0 obj (Selenium-RC Architecture) endobj 216 0 obj << /S /GoTo /D (section.6.12) >> endobj 219 0 obj (Handling HTTPS and Security Popups) endobj 220 0 obj << /S /GoTo /D (section.6.13) >> endobj 223 0 obj (Supporting Additional Browsers and Browser Configurations) endobj 224 0 obj << /S /GoTo /D (section.6.14) >> endobj 227 0 obj (Troubleshooting Common Problems) endobj 228 0 obj << /S /GoTo /D (chapter.7) >> endobj 231 0 obj (Test Design Considerations) endobj 232 0 obj << /S /GoTo /D (section.7.1) >> endobj 235 0 obj (Introducing Test Design) endobj 236 0 obj << /S /GoTo /D (section.7.2) >> endobj 239 0 obj (What to Test?) endobj 240 0 obj << /S /GoTo /D (section.7.3) >> endobj 243 0 obj (Verifying Results) endobj 244 0 obj << /S /GoTo /D (section.7.4) >> endobj 247 0 obj (Choosing a Location Strategy) endobj 248 0 obj << /S /GoTo /D (section.7.5) >> endobj 251 0 obj (Testing Ajax Applications) endobj 252 0 obj << /S /GoTo /D (section.7.6) >> endobj 255 0 obj (UI Mapping) endobj 256 0 obj << /S /GoTo /D (section.7.7) >> endobj 259 0 obj (Bitmap Comparison) endobj 260 0 obj << /S /GoTo /D (section.7.8) >> endobj 263 0 obj (Handling Errors) endobj 264 0 obj << /S /GoTo /D (chapter.8) >> endobj 267 0 obj (Selenium-Grid) endobj 268 0 obj << /S /GoTo /D (chapter.9) >> endobj 271 0 obj (User-Extensions) endobj 272 0 obj << /S /GoTo /D (section.9.1) >> endobj 275 0 obj (Introduction) endobj 276 0 obj << /S /GoTo /D (section.9.2) >> endobj 279 0 obj (Actions) endobj 280 0 obj << /S /GoTo /D (section.9.3) >> endobj 283 0 obj (Accessors/Assertions) endobj 284 0 obj << /S /GoTo /D (section.9.4) >> endobj 287 0 obj (Locator Strategies) endobj 288 0 obj << /S /GoTo /D (section.9.5) >> endobj 291 0 obj (Using User-Extensions With Selenium-IDE) endobj 292 0 obj << /S /GoTo /D (section.9.6) >> endobj 295 0 obj (Using User-Extensions With Selenium RC) endobj 296 0 obj << /S /GoTo /D (chapter.10) >> endobj 299 0 obj (Selenium 2.0 and WebDriver) endobj 300 0 obj << /S /GoTo /D (section.10.1) >> endobj 303 0 obj (What is WebDriver?) endobj 304 0 obj << /S /GoTo /D (section.10.2) >> endobj 307 0 obj (When to Use WebDriver?) endobj 308 0 obj << /S /GoTo /D (section.10.3) >> endobj 311 0 obj (The 5 Minute Getting Started Guide) endobj 312 0 obj << /S /GoTo /D (section.10.4) >> endobj 315 0 obj (Next Steps For Using WebDriver) endobj 316 0 obj << /S /GoTo /D (section.10.5) >> endobj 319 0 obj (WebDriver Implementations) endobj 320 0 obj << /S /GoTo /D (section.10.6) >> endobj 323 0 obj (Emulating Selenium RC) endobj 324 0 obj << /S /GoTo /D (section.10.7) >> endobj 327 0 obj (Tips and Tricks) endobj 328 0 obj << /S /GoTo /D (section.10.8) >> endobj 331 0 obj (How XPATH Works in WebDriver) endobj 332 0 obj << /S /GoTo /D (section.10.9) >> endobj 335 0 obj (Getting and Using WebDriver) endobj 336 0 obj << /S /GoTo /D (section.10.10) >> endobj 339 0 obj (Roadmap) endobj 340 0 obj << /S /GoTo /D (section.10.11) >> endobj 343 0 obj (Further Resources) endobj 344 0 obj << /S /GoTo /D (chapter.11) >> endobj 347 0 obj (.NET client driver configuration) endobj 348 0 obj << /S /GoTo /D (chapter.12) >> endobj 351 0 obj (Java Client Driver Configuration) endobj 352 0 obj << /S /GoTo /D (section.12.1) >> endobj 355 0 obj (Configuring Selenium-RC With Eclipse) endobj 356 0 obj << /S /GoTo /D (section.12.2) >> endobj 359 0 obj (Configuring Selenium-RC With Intellij) endobj 360 0 obj << /S /GoTo /D (chapter.13) >> endobj 363 0 obj (Python Client Driver Configuration) endobj 364 0 obj << /S /GoTo /D (chapter.14) >> endobj 367 0 obj (Locating Techniques) endobj 368 0 obj << /S /GoTo /D (section.14.1) >> endobj 371 0 obj (Useful XPATH patterns) endobj 372 0 obj << /S /GoTo /D (section.14.2) >> endobj 375 0 obj (Starting to use CSS instead of XPATH) endobj 376 0 obj << /S /GoTo /D [377 0 R /Fit ] >> endobj 381 0 obj << /Length 311 /Filter /FlateDecode >> stream xڽKoPYbRs_m,M]Ueg\XV VXws|s!mDM3xcú(4#Bmwv˗qDz%FZsoUIy4&J,fC_1ZqzW+5`щ溌҂s`> G`RpD ,yݱ%xܮuV]ی$-= 440VՀPHPv_c+1ds}7bۧj}YZو{o@Q=tU. K1P:M} Ս endstream endobj 377 0 obj << /Type /Page /Contents 381 0 R /Resources 380 0 R /MediaBox [0 0 595.276 841.89] /Parent 387 0 R /Group 379 0 R >> endobj 378 0 obj << /Type /XObject /Subtype /Image /Width 140 /Height 136 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 388 0 R /Length 15078 /Filter /FlateDecode >> stream xtTיǩ6`0wPL1`0E*zMHB D3DGL了ĎKĉNf-g<^ޛ7wy|__tu˿ NߝėOo)nŢXz*[+^I2x4ykY(s K˙wfqJ$6%M'E+O1'/yZw{ҦLaZ8g(;ophg(\o}7ҥfi߾}6m0Qͱ\KwQ u#X')ТEW_}ss!C/.V}PĿYz-НsΝw]'ιp։3Nvɓ'NأG9r$''СC
j(߿?tٓ$\nZJSfGd
Z8Ao#M۶m9'L]u}-[,Z(,Zұ|gX
w.%KQDSFxG!XvNp !;vLhR> ,y}Nqرcۜ+ȱr6ڵkWZ%#x$OW5k#p ;vvu5'^w^cmW~fPj@/)btѻñիW/\
ѕ+W]vƍ[nݾ}͛ׯ_g/]wd`GD$sAyٽ{R ;/p NхMNȞ ;O3vң3dž5_8]|7aVCTvmOnL:W`D%OisƪF>w;?..s['~o_}_~_|g|G}9qp
ї/_t(F
aCX;KDxE`c/՚EN(Yt$!a;_Ph"
M+ xњi;4pƢE
űCEW0fr'FY7i^@_W/?Ç8i5RD-.WE}ЀJ8}}x뭷HWC/_(^]pȉfA9apĒWFTseUw# XL|@3 |somU~"s&?6uf!CS&9AcQB3D@t[Civf̘A3TA_~ ?
uv|n#7 ' xIcȑRKaۗǭ )J[q`)U%%gPQV;Bzxnm]kvnƀZd(JqI$nw'f8
tXҿY!˖`O+GTcցxa;)n)(,]-M"+"LFCCt%xh;˔) -d{Yslz{x<"LxyX
_ zbʭòׇq(7(0`2"ysr!I{Ca|:vX\)Gש"a$܈a|1xnX.ɝ]Yxe
55KlrYp1\;wxjp/`*ѵnݚF8[Oړٿ*o3ejrn轒hغ|АcB\"H|1.4eOGD"zZǗo(_uY"&dR,U&uzBE/nu"lrGR:8*kgF0~t':4>REd(Ȓr焽^YyIЪU'N@Е+W,FeYqˋ\yi2e<|0!!B?s~駖i:ӟtʕ+(QW&