03 Automation reference

Driving
VIDA

VIDA 2014D was built to be clicked by a technician, not scripted. This is the map that makes it scriptable: 307 addressable elements across every screen — each with its DOM identifier where one exists, and its measured position on screen where one doesn’t.

01 Capture conditions

Coordinates are
only true in context.

Screen positions mean nothing without the window state they were measured in. DOM identifiers survive anything; pixels do not.

Display

1366x768, Internet Explorer MAXIMISED

Restore the window down instead of maximising and the tab row scrolls out of reach entirely — every pixel figure on this page becomes wrong.

Application

VIDA2014D en-US

Captured 2026-07-30 / 2026-07-31, signed in with a vehicle identified. Several controls only exist once a profile is loaded.

Vehicle

Profile loaded

S60 (11-) 2015A B4204T11 TG-81SC LHD VIN YV140MFB0F2303627

Method. DOM read via Shell.Application COM + javascript: injection, chunked back through document.title; pixel coordinates read from labelled grid screenshots.

02 Cold start

Fresh page to
identified car.

Verified end-to-end: logged out, then drove the whole flow back to an identified vehicle purely through the DOM. No AutoHotkey, no pixels, run from SSH.

The one thing that matters

Use fireEvent, not .click()

IE's fireEvent('onclick') is what actually drives VIDA. Setting .value or calling .click() puts text on screen but does NOT fire VIDA's handlers. For RADIOS you need BOTH e.checked=true AND e.fireEvent('onclick'). The searchButton and all INFORMATION menu items need a REAL pixel click - neither method reaches them.

#stephowconfirm it worked
1 Go to the app root goto.ps1 -url http://localhost/Vida/ document.title == 'VIDA'
2 Log in getElementById('usernameId').value='admin'; getElementById('loginId').click() title becomes 'VIDA - VIDA2014D, en-US'
3 Open the vehicle picker click_text.ps1 -text 'Define vehicle profile' docFrame src = /Vida/vehicleProfileTabAction.do
4 Pick a known vehicle recent-VIN radio: fireEvent('onclick') vehicleModelSelect and modelYearSelect become non-empty
5 Confirm okId: fireEvent('onclick') top.profile == the VIN; partnerGroup flips INT -> AME
Going the other way

Log out

getElementById('logOutLinkId').click()

navigates to /Vida/LogOut.do, a terminal page reading 'Close dialog to logout.' Session is dead; navigate back to /Vida/ for the login page.

03 Global chrome

Addressable
by name.

The header and tab row are ordinary HTML in the top document. Every one carries a real DOM id, so drive them by identifier — getElementById('searchTab').click() — and they never break when the window moves.

DOM idclasslabelx,yw×h
loginId actionbutton Log in 1040,670 64×13
computerRegistrationWizard actionbutton Registration guide for subscription 800,711 289×13
usernameId text 1011,622 118×19
— headerbutton Report errors 65,76 126×13
vehicleDetail headerbutton Vehicle details 71,89 137×13
— headerbutton Help 30,102 56×13
logOutLinkId headerbutton Log out 1196,78 79×13
startTab navigationchoosen Start 305,109 45×13
vehicleProfileTab navigation Vehicle profile 441,109 116×13
informationTab navigation Information 644,109 95×13
workListTab navigation Work list 813,109 74×13
diagnosticTab navigation Diagnostics 970,109 93×13
softwareTab navigation Software 1136,109 74×13
searchTab navigation Search 1272,109 54×13
State detection

Which tab is open

The active tab carries class="navigationchoosen"; the rest are navigation.
top.choosenTab — current tab slug ('diagnostics', 'softwareDownload', 'vehicleProfile', 'start', ...)
top.profile — identified VIN, or absent when no vehicle is loaded
document.cookie — JSESSIONID=<id>.undefined - required for any direct HTTP fetch; without it every URL returns a ~493-byte login stub

Structure

One iframe for everything

All page content renders inside a single iframe, id="docFrame". Everything below is measured inside that frame, in screen coordinates.

04 Form bindings

Set the value,
don’t click the pixel.

Verified from the live DOM: element name, accepted values, and what each means. Set these instead of clicking pixels.

name

searchCategory

2 = Parts · 1 = Repair · 4 = Product specifications · 3 = Fault tracing · 5 = Bulletins · 99 = CSC · -1 = All information except parts catalog · 6 = VCC Id

CORRECTED 2026-07-31: the adaptation-reset routines are NOT under 3 (Fault tracing) - that returns only 'Diagnostic trouble code (DTC) information ECM-Pxxxxxx' documents. Use -1 and search 'Resetting adaptations' (2 hits).

name

searchAll

true = All words · false = Any word

Default is Any, which matches on 'and'/'for' and caps at 200 results. Always set true.

name

profileFilterOn

true = Vehicle profile filter On · false = Off

name

partsSearchStringType

2 = Part description · 1 = Part number

name

partsSearchResultType

1 = Show results by Part · 2 = by Section

name

includeNotes

on = Include notes (checkbox)

05 Per screen

147 controls,
146 clickables.

Each tab opened by its DOM id and re-read. Controls are inputs, links, buttons and selects. Clickable are elements bound with attachEvent or carrying a pointer cursor — menu rows and tree nodes that aren’t anchors but still respond.

1. LOGIN (cold start) — · 3 controls, 0 clickable, of 4 elements

tagtypeid / classtext or valuex,yw×h
A — loginId Log in 1040,670 64×13
A — computerRegistrationWizard Registration guide for subscription 800,711 289×13
INPUT text usernameId — 1011,622 118×19

2. POST-LOGIN (no vehicle) — · 4 controls, 0 clickable, of 19 elements

tagtypeid / classtext or valuex,yw×h
A — .actionbutton Define vehicle profile 139,281 188×13
A — .actionbutton Perform computer settings 157,360 223×13
A — .headerbutton Copyright 1047,486 97×13
A — .headerbutton Conditions 1043,499 105×13

3. VEHICLE SELECT (empty) — · 16 controls, 5 clickable, of 67 elements

tagtypeid / classtext or valuex,yw×h
A — clearVehicleProfile Clear vehicle profile 622,483 180×13
A — okId OK 865,483 41×13
INPUT text — — 78,309 112×22
INPUT text — — 202,309 112×22
INPUT radio — YV140MFB0F2303627,1001, 36,570 20×20
INPUT radio — YV1LZ56DXY2736349,1003, 36,594 20×20
INPUT radio — YV1AS982272017437,1003, 36,618 20×20
INPUT radio — YV1AS982271017437,1003, 36,642 20×20
SELECT select-one vehicleModelSelect XC90XC70 (08-)XC60V90V70 XC (01-) / XC70 (-0 122,406 200×22
SELECT select-one modelYearSelect — 302,406 140×22
SELECT select-one vinPartnerGroup AME INT, Arabia and China EUR/INT, except Ara 654,406 244×22
SELECT select-one engineSelect 122,445 200×22
SELECT select-one transmissionSelect 302,445 140×22
SELECT select-one steeringSelect 452,445 140×22
SELECT select-one bodySelect 602,445 140×22
SELECT select-one specialVehicleSelect 811,445 107×22
DIV — — Vehicle profile 76,131 127×13
TR — recentVinRow S60 (11-)2015AYV140MFB0F2303627 421,570 796×22
TR — recentVinRow V70 XC (-00)2000YV1LZ56DXY2736349 421,594 796×22
TR — recentVinRow S80 (07-)2007YV1AS982272017437 421,618 796×22
TR — recentVinRow S80 (07-)2007YV1AS982271017437 421,642 796×22

4. VEHICLE IDENTIFIED — · 16 controls, 6 clickable, of 68 elements

tagtypeid / classtext or valuex,yw×h
A — clearVehicleProfile Clear vehicle profile 622,483 180×13
A — okId OK 865,483 41×13
INPUT text — YV140MFB0F2 78,309 112×22
INPUT text — 303627 202,309 112×22
INPUT radio checkedRadioVin on 36,570 20×20
INPUT radio checkedRadioVin on 36,594 20×20
INPUT radio checkedRadioVin on 36,618 20×20
INPUT radio checkedRadioVin on 36,642 20×20
SELECT select-one vehicleModelSelect S60 (11-) 122,406 200×22
SELECT select-one modelYearSelect 2015A 302,406 140×22
SELECT select-one vinPartnerGroup AME INT, Arabia and China EUR/INT, except Ara 654,406 244×22
SELECT select-one engineSelect B4204T11 122,445 200×22
SELECT select-one transmissionSelect TG-81SC 302,445 140×22
SELECT select-one steeringSelect L.H.D 452,445 140×22
SELECT select-one bodySelect 602,445 140×22
SELECT select-one specialVehicleSelect 811,445 107×22
DIV — — Vehicle profile 76,131 127×13
SPAN — symptonSelected CSC 179,132 59×23
TR — recentVinRow S60 (11-)2015AYV140MFB0F2303627 421,570 796×22
TR — recentVinRow V70 XC (-00)2000YV1LZ56DXY2736349 421,594 796×22
TR — recentVinRow S80 (07-)2007YV1AS982272017437 421,618 796×22
TR — recentVinRow S80 (07-)2007YV1AS982271017437 421,642 796×22

INFORMATION (menu bar) — · 4 controls, 46 clickable, of 116 elements

tagtypeid / classtext or valuex,yw×h
A — — 24,151 15×15
A — — — 402,277 140×140
A — — — 230,481 356×267
INPUT button .button Continue 555,577 110×50
DIV — — Parts 40,131 56×13
DIV — 35 Parts Catalog 91,149 146×21
DIV — 76 Accessories Web 91,170 146×21
DIV — 78 CHEMICALS 91,191 146×21
DIV — — Repair 119,131 62×13
DIV — 1 General Safety Information 246,149 303×21
DIV — 2 General Information 246,170 303×21
DIV — 6 Component location 246,191 303×21
DIV — 22 Service programs 246,212 303×21
DIV — 23 Removal, replacement and installation 246,233 303×21
DIV — 24 Overhaul instructions 246,254 303×21
DIV — 25 Cleaning, Inspection and Adjustment 246,275 303×21
DIV — 26 Installation instructions, accessories 246,296 303×21
DIV — — Product specifications 264,131 187×13
DIV — 4 Visual Identification 360,149 367×21
DIV — 5 Design and Function 360,170 367×21
DIV — 27 Specifications, electrical/electronic 360,191 367×21
DIV — 28 Specifications, mechanical 360,212 367×21
DIV — 29 Specifications, other 360,233 367×21
DIV — 31 Mechanical schematics and diagrams 360,254 367×21
DIV — 32 Gas, Vacuum and Fluids Schematics and Diagram 360,275 367×21
DIV — — Fault tracing 436,131 117×13
DIV — 19 General Diagnostics and Tests 586,149 405×21
DIV — 20 Diagnostic Trouble Codes and Associated Proce 586,170 405×21
DIV — 21 Symptom Related Diagnostic Procedures 586,191 405×21
DIV — 68 Symptom Verification 586,212 405×21
DIV — 30 Wiring diagrams 586,233 405×21
DIV — — Bulletins 557,131 85×13
DIV — 7 General Information Bulletins 656,149 271×21
DIV — 8 Manual Update Bulletins 656,170 271×21
DIV — 9 Product Fix/Special Tool Bulletins 656,191 271×21
DIV — 10 Recall/Service Campaign Bulletins 656,212 271×21
DIV — 11 Emission Recall Campaign Bulletins 656,233 271×21
DIV — 12 Safety Recall Campaign Bulletins 656,254 271×21
DIV — 13 Service Manager Bulletins 656,275 271×21
DIV — 14 Parts/Accessories Bulletins 656,296 271×21
DIV — 15 TB, Special tools 656,317 271×21
DIV — 16 TB, General tools 656,338 271×21
DIV — 17 TB, Personal hand tools 656,359 271×21
DIV — 18 TB, Diagnostic tools 656,380 271×21
DIV — 89 TB, Workshop equipment 656,401 271×21
DIV — 90 TB, Available tools 656,422 271×21
DIV — 91 TB, Body tools 656,443 271×21
DIV — — Forms 647,131 55×13
DIV — 92 Forms 689,149 128×21
SPAN — buttonPrint Print 1315,193 58×16

INFORMATION > Repair > Removal, replacement and installation — · 1 controls, 63 clickable, of 122 elements

tagtypeid / classtext or valuex,yw×h
INPUT text DirectAccessInput — 455,175 30×22
DIV — — Parts 40,131 56×13
DIV — 35 Parts Catalog 91,149 146×21
DIV — 76 Accessories Web 91,170 146×21
DIV — 78 CHEMICALS 91,191 146×21
DIV — — Repair 119,131 62×13
DIV — 1 General Safety Information 231,155 303×21
DIV — 2 General Information 231,176 303×21
DIV — 6 Component location 231,197 303×21
DIV — 22 Service programs 231,218 303×21
DIV — 23 Removal, replacement and installation 231,239 303×21
DIV — 24 Overhaul instructions 231,260 303×21
DIV — 25 Cleaning, Inspection and Adjustment 231,281 303×21
DIV — 26 Installation instructions, accessories 231,302 303×21
DIV — — Product specifications 264,131 187×13
DIV — 4 Visual Identification 360,149 367×21
DIV — 5 Design and Function 360,170 367×21
DIV — 27 Specifications, electrical/electronic 360,191 367×21
DIV — 28 Specifications, mechanical 360,212 367×21
DIV — 29 Specifications, other 360,233 367×21
DIV — 31 Mechanical schematics and diagrams 360,254 367×21
DIV — 32 Gas, Vacuum and Fluids Schematics and Diagram 360,275 367×21
DIV — — Fault tracing 436,131 117×13
DIV — 19 General Diagnostics and Tests 571,155 405×21
DIV — 20 Diagnostic Trouble Codes and Associated Proce 571,176 405×21
DIV — 21 Symptom Related Diagnostic Procedures 571,197 405×21
DIV — 68 Symptom Verification 571,218 405×21
DIV — 30 Wiring diagrams 571,239 405×21
DIV — — Bulletins 557,131 85×13
DIV — 7 General Information Bulletins 656,149 271×21
DIV — 8 Manual Update Bulletins 656,170 271×21
DIV — 9 Product Fix/Special Tool Bulletins 656,191 271×21
DIV — 10 Recall/Service Campaign Bulletins 656,212 271×21
DIV — 11 Emission Recall Campaign Bulletins 656,233 271×21
DIV — 12 Safety Recall Campaign Bulletins 656,254 271×21
DIV — 13 Service Manager Bulletins 656,275 271×21
DIV — 14 Parts/Accessories Bulletins 656,296 271×21
DIV — 15 TB, Special tools 656,317 271×21
DIV — 16 TB, General tools 656,338 271×21
DIV — 17 TB, Personal hand tools 656,359 271×21
DIV — 18 TB, Diagnostic tools 656,380 271×21
DIV — 89 TB, Workshop equipment 656,401 271×21
DIV — 90 TB, Available tools 656,422 271×21
DIV — 91 TB, Body tools 656,443 271×21
DIV — — Forms 647,131 55×13
DIV — 92 Forms 689,149 128×21
TR — row2 2 Engine with mountings and equipment 232,223 453×18
TR — row2_21 21 Engine 232,241 453×18
TR — row2_22 22 Lubricating and oil system 232,259 453×18
TR — row2_23 23 Fuel system 232,277 453×18
TR — row2_25 25 Intake and exhaust system 232,295 453×18
TR — row2_26 26 Cooling system 232,313 453×18
TR — row2_27 27 Engine control 232,331 453×18
TR — row2_28 28 Ignition and control systems 232,349 453×18
TR — row2_28_281 281 ignition coil, spark plug, ignition cable 232,367 453×18
TR — row2_28_283 283 control system, ignition 232,385 453×18
TR — row2_28_284 284 control system, fuel supply 232,403 453×18
TR — row2_28_284_382328422 0b00c8af85e4a1db Control system, fuel supply, B4204T11, TG-81S 232,421 453×18
TR — row3 3 Electrical system 232,439 453×18
TR — row4 4 Power transmission 232,457 453×18
TR — row5 5 Brakes 232,475 453×18
TR — row6 6 Suspension and steering 232,493 453×18
TR — row7 7 Springs and wheels 232,511 453×18
TR — row8 8 Body and interior 232,529 453×18

WORK LIST — · 25 controls, 7 clickable, of 68 elements

tagtypeid / classtext or valuex,yw×h
A — searchButton Search 750,186 70×13
A — addButton Add 739,199 47×13
A — printButton Print 1311,166 59×13
A — newListButton New 30,261 49×13
A — importListButton Import 93,261 69×13
A — updateListButton Save 158,261 53×13
A — closeListButton Close 218,261 60×13
A — noteButton Note 279,261 54×13
A — deleteListButton Delete 36,673 68×13
A — addJobNoButton Assign Job Number 150,673 152×13
A — exportListButton Export 265,673 69×13
A — editListButton Edit list 345,673 84×13
A — changeVinButton Change VIN 441,673 99×13
A — addSwButton Add SW 38,703 71×13
A — deleteMultiListButton Delete 37,227 68×13
A — cancelButton Cancel 667,227 69×13
INPUT text searchText — 574,174 274×22
INPUT checkbox checkAllItemsControl on 28,308 50×20
INPUT checkbox profile on 15,156 20×20
INPUT checkbox showPartsLists on 227,156 20×20
INPUT checkbox company on 15,180 20×20
INPUT checkbox showWorkLists on 227,180 20×20
INPUT checkbox multiSelectLists on 13,204 20×20
SELECT select-one searchCategory Part number Part description CSC 653,196 116×19
SELECT select-one groupSelect Type Job no. Vehicle profile QB 1225,283 108×19
SPAN — .BarActive Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23

WORK LIST > SETTINGS — · 22 controls, 7 clickable, of 68 elements

tagtypeid / classtext or valuex,yw×h
A — deleteListButton Delete 36,522 68×13
A — addJobNoButton Assign Job Number 150,522 152×13
A — exportListButton Export 265,522 69×13
A — editListButton Edit list 345,522 84×13
A — changeVinButton Change VIN 441,522 99×13
A — addSwButton Add SW 38,552 71×13
A — updateButton Save 596,372 53×13
A — updateButton Cancel 663,372 69×13
INPUT checkbox checkAllItemsControl on 28,157 50×20
INPUT checkbox profile on 15,156 20×20
INPUT checkbox showPartsLists on 227,156 20×20
INPUT checkbox company on 15,180 20×20
INPUT checkbox showWorkLists on 227,180 20×20
INPUT radio aiocMode online 168,180 20×20
INPUT radio aiocMode offline 232,180 20×20
INPUT checkbox — on 168,315 20×20
INPUT radio createEmptyWorklistValue true 168,346 20×20
INPUT radio createEmptyWorklistValue false 287,346 20×20
SELECT select-one failoverLang Default 192,205 68×19
SELECT select-one searchCategoryPreset None Part number Part description CSC 216,229 116×19
SELECT select-one groupingPreset None Type Job no. Vehicle profile QB 212,260 108×19
SELECT select-one pageSizeSetting 25 50 75 100 150 200 182,284 48×19
SPAN — .BarActive Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23

WORK LIST > CHANGE WORK LIST — · 14 controls, 7 clickable, of 57 elements

tagtypeid / classtext or valuex,yw×h
A — deleteListButton Delete 36,522 68×13
A — addJobNoButton Assign Job Number 150,522 152×13
A — exportListButton Export 265,522 69×13
A — editListButton Edit list 345,522 84×13
A — changeVinButton Change VIN 441,522 99×13
A — addSwButton Add SW 38,552 71×13
A — deleteMultiListButton Delete 37,227 68×13
A — cancelButton Cancel 667,227 69×13
INPUT checkbox checkAllItemsControl on 28,157 50×20
INPUT checkbox profile on 15,156 20×20
INPUT checkbox showPartsLists on 227,156 20×20
INPUT checkbox company on 15,180 20×20
INPUT checkbox showWorkLists on 227,180 20×20
INPUT checkbox multiSelectLists on 13,204 20×20
SPAN — .BarActive Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Settings 318,132 99×23
SPAN — .BarPermitted Work list 55,132 105×23
SPAN — .BarPermitted Change work list 188,132 161×23

SEARCH (results state) — · 20 controls, 2 clickable, of 51 elements

tagtypeid / classtext or valuex,yw×h
A — searchButton Search 539,271 70×13
A — .actionbutton Stop 531,284 53×13
A — .actionbutton Back 531,297 53×13
A — .resultsTitle Function group 88,382 107×14
A — .resultsTitle Information type 387,382 120×14
A — .resultsTitle Vehicle profile 732,382 104×14
A — .resultsTitle Title 1089,382 38×14
A — — S60 (11-), 2015A, B4204T11 706,412 178×14
A — — S60 (11-), 2015A, B4204T11 706,442 178×14
A — — S60 (11-), 2015A, B4204T11 706,472 178×14
A — — S60 (11-), 2015A, B4204T11 706,502 178×14
INPUT radio — true 25,178 20×20
INPUT radio — false 69,178 20×20
INPUT radio — 2 22,237 20×20
INPUT radio — 1 139,237 20×20
INPUT text — supercharger 126,276 214×22
INPUT text — — 385,276 214×22
INPUT radio — true 29,300 20×20
INPUT radio — false 67,300 20×20
INPUT checkbox — on 29,320 20×20
DIV — .content Vehicle profile On Off Search for: Part descr 685,237 1345×190
TABLE — — Notes and Search Stop Back All Any Include no 297,290 569×85

SEARCH (form state) — · 22 controls, 3 clickable, of 43 elements

tagtypeid / classtext or valuex,yw×h
A — searchButton Search 539,276 70×13
A — .actionbutton Stop 531,289 53×13
A — .actionbutton Back 531,302 53×13
INPUT radio — true 25,183 20×20
INPUT radio — false 69,183 20×20
INPUT radio — 2 22,242 20×20
INPUT radio — 1 139,242 20×20
INPUT text — — 126,281 214×22
INPUT text — — 385,281 214×22
INPUT radio — true 29,305 20×20
INPUT radio — false 67,305 20×20
INPUT checkbox — on 29,325 20×20
INPUT radio — 2 33,378 20×20
INPUT radio — 1 61,411 20×20
INPUT radio — 2 61,431 20×20
INPUT radio — 1 33,451 20×20
INPUT radio — 4 33,471 20×20
INPUT radio — 3 33,491 20×20
INPUT radio — 5 33,511 20×20
INPUT radio — 99 33,531 20×20
INPUT radio — -1 33,551 20×20
INPUT radio — 6 33,571 20×20
DIV — .content Vehicle profile On Off Search for: Part descr 690,365 1355×435
TABLE — — Notes and Search Stop Back All Any Include no 297,295 569×85
TABLE — — Select type of search Parts Show results by P 312,460 600×245

SOFTWARE — · ActiveX — not DOM-addressable

Nothing addressable — this screen is drawn by an embedded control. See the pixel coordinates below.

06 The exception

Two screens aren’t
web pages at all.

VIDA’s two live-vehicle surfaces are embedded ActiveX controls that paint their own interface. Their sub-tabs, trees, diagrams and buttons do not exist in the DOM and never will. Everything documentation-related is ordinary HTML; everything that touches the car is not.

DIAGNOSTICS

OBJECT#DiagMgr

Container DIV#diagDIV
/Vida/Diagnostics/Diagnostics.do
top.choosenTab = 'diagnostics'

10,764 chars of HTML, 16 elements, ZERO anchors, ZERO innerText.

SOFTWARE

OBJECT#SwdlMgr

Container DIV#swDIV
/Vida/Diagnostics/SoftwareDownload.do
top.choosenTab = 'softwareDownload'

5,642 chars of HTML, 17 elements, ZERO anchors, ZERO innerText.

07 INFORMATION menus

Every item,
and whether it works.

Every item has a stable numeric DOM id. Class reports availability: menuItem = usable, menuItemDisabled = greyed for this vehicle, ItemMouseOver = hover. Contrast the TOP TABS, where disabled state is NOT visible in the class at all. Items need TWO real pixel clicks (parent, then item) - .click() and fireEvent both fail. Item y shifts ~6px once a menu has been opened.

Parts — parent at 40,131

iditemx,ystate
35 Parts Catalog 91,149 available
76 Accessories Web 91,170 disabled
78 CHEMICALS 91,191 disabled

Repair — parent at 119,131

iditemx,ystate
1 General Safety Information 246,149 available
2 General Information 246,170 available
6 Component location 246,191 available
22 Service programs 246,212 available
23 Removal, replacement and installation 246,233 available
24 Overhaul instructions 246,254 available
25 Cleaning, Inspection and Adjustment 246,275 available
26 Installation instructions, accessories 246,296 available

Product specifications — parent at 264,131

iditemx,ystate
4 Visual Identification 360,149 disabled
5 Design and Function 360,170 available
27 Specifications, electrical/electronic 360,191 available
28 Specifications, mechanical 360,212 available
29 Specifications, other 360,233 available
31 Mechanical schematics and diagrams 360,254 disabled
32 Gas, Vacuum and Fluids Schematics and Diagrams 360,275 disabled

Fault tracing — parent at 436,131

iditemx,ystate
19 General Diagnostics and Tests 586,149 available
20 Diagnostic Trouble Codes and Associated Procedures 586,170 available
21 Symptom Related Diagnostic Procedures 586,191 available
68 Symptom Verification 586,212 disabled
30 Wiring diagrams (opens the EWD in a NEW TAB) 586,233 available

Bulletins — parent at 557,131

iditemx,ystate
7 General Information Bulletins 656,149 disabled
8 Manual Update Bulletins 656,170 disabled
9 Product Fix/Special Tool Bulletins 656,191 available
10 Recall/Service Campaign Bulletins 656,212 disabled
11 Emission Recall Campaign Bulletins 656,233 disabled
12 Safety Recall Campaign Bulletins 656,254 disabled
13 Service Manager Bulletins 656,275 disabled
14 Parts/Accessories Bulletins 656,296 available
15 TB, Special tools 656,317 available
16 TB, General tools 656,338 available
17 TB, Personal hand tools 656,359 available
18 TB, Diagnostic tools 656,380 available
89 TB, Workshop equipment 656,401 disabled
90 TB, Available tools 656,422 disabled
91 TB, Body tools 656,443 disabled

Forms — parent at 647,131

iditemx,ystate
92 Forms 689,149 disabled

08 Screen-by-screen coordinates

Read off the
screenshots.

Coordinates read from grid screenshots at 1366x768, IE MAXIMISED. These cover surfaces the DOM cannot reach (ActiveX DiagMgr/SwdlMgr, the EWD tab) plus visual landmarks on HTML pages. Verify against the reference screenshot before relying on a click.

DIAGNOSTICS - sub-tab bar (all diagnostics pages) — activex

targetx,y
DETAILS 627,131
NETWORK 730,131
FAULT TRACE 848,131
REFERENCE INFORMATION 1020,131
VEHICLE COMMUNICATION 1236,131
PRINT 1295,157
live status: Connected 1272,177
live status: battery voltage 1288,197
live status: ignition position 1288,213

DIAGNOSTICS - DETAILS — activex

targetx,y
UPDATE (re-read vehicle) 660,187
Vehicle details table (first row VIN) 300,237
Vehicle configuration table header 95,391

DIAGNOSTICS - NETWORK (module topology) — activex

Colour = state. green responded OK, grey not fitted/NA, RED = has stored DTCs. The diagram sits ~30px LOWER on VEHICLE COMMUNICATION/DTC-based - coordinates are NOT portable between sub-tabs.

targetx,y
ECM 71,196
TCM 71,214
PSCM 120,210
PDM 219,204
SUM 271,200
DEM 305,200
SODR 351,196
PAC 351,214
PHM 211,232
AUD 255,232
TVM 300,232
ICM/IHU 175,241
IAM 210,252
DABM 255,252
RDAR 300,252
SAS 74,245
FSM 108,241
BCM 74,263
CVM 108,261
PBM 74,282
SRS 74,300
DIM 140,282
CPM 173,290
CCM 204,290
DDM 235,290
PSM 265,290
KVM 296,290
PAM 339,273
TRM 341,290
SODL 352,308
CEM 107,316
CT 105,351
UPDATE 449,235
TEST COMMUNICATION TOOL 518,267

DIAGNOSTICS - NETWORK, module selected (e.g. ECM) — activex

targetx,y
module name header 500,175
Reference information panel header 120,407
Active column 295,407
ref tree row 1 (Design and Function) 122,432
ref tree expanders 35,432
ECU identification panel 587,407
ECU id first value (Serial No) 768,431
VIEW INFORMATION 109,705

Row pitch 16px.

DIAGNOSTICS - FAULT TRACE — activex

On this sub-tab the diagram colours mean SELECTED SYMPTOM, not DTC state.

targetx,y
symptom dropdown 505,424
symptom dropdown arrow 978,424
UPDATE 1067,424
ACTION HISTORY 1197,424
state tab: Initial State 65,404
state tab: Selected CSC 170,404
state tab: Unselected CSC 270,404
state tab: Delivery 330,404
first fault row 300,444

Row pitch 16px.

DIAGNOSTICS - VEHICLE COMMUNICATION / REFERENCE INFORMATION (same CSC widget) — activex

targetx,y
CSC based tab 61,155
DTC based tab 138,155
CSC tree first row 200,222
Related DTC header (DTC based) 48,441

Row pitch 16px.

Blocking dialogs — dialog

targetx,y
Previous Readout Found - UPDATE (ERASES readout) 481,391
Previous Readout Found - CANCEL (safe) 481,430
Previous Readout Found - close X 922,276
Unhandled exception - CLOSE 886,429
Unhandled exception - DETAILS 492,429
warning

The Previous Readout dialog MOVES between sessions - locate it from a screenshot, never hardcode. The unhandled-exception dialog has been stable at 886,429. Both block COM; Navigate throws 0x800700AA 'resource is in use', which is a reliable detector that a modal is up.

SOFTWARE (vehicle connected) — activex

targetx,y
VIN | Chassis input 86,210
Model dropdown 244,210
Model year dropdown 368,210
Order reference input 500,210
Software product input 655,210
Software product browse (...) 710,210
ADD 770,211
Communication tool dropdown 86,251
Diagnostics button 212,251
Add to: checkbox 466,248
Add to: dropdown 668,251
ADVANCED 1214,163
PRINT 1300,163
S/V40 (-04) REPROGRAMMER 139,286
QUERY ORDER 307,286
READ VEHICLE 754,286
SEARCH 856,286
TRANSFER TO USB MEMORY 995,286
tab SOFTWARE LIST 85,320
tab DOWNLOAD HISTORY 210,320
PURCHASE 70,516
RESUME 159,516
RETRIEVE 245,516
REVOKE 329,516
ORDER FOR AN INDEPENDENT WORKSHOP 517,516
REMOVE 1284,516
Order details panel 68,557
Information panel 418,557
Enable offline download checkbox 991,617
CONTINUE 1290,697

EWD - Electronic Wiring Diagram (SEPARATE BROWSER TAB, DOM unreachable) — separate-tab

http://localhost/Vida/wiring_diagrams/US_Eng/index.html

Reached by: INFORMATION > Fault tracing (436,131) > Wiring diagrams (586,233)

targetx,y
EWD header tab 135,78
START 44,107
FULLSCREEN - F11 178,107
Step 1 - select car model (dropdown) 114,180
Step 1 arrow 210,180
Step 2 - select a publication (dropdown) 114,218
Step 2 arrow 210,218
Open book 55,256
New features 76,294
Help 46,312
warning

Opens in a NEW TAB. Its DOM will not marshal over COM (readyState and title both read empty). A second tab also breaks every script here, because Shell.Application matches BOTH tabs on localhost/vida and the scripts take the last match. Enumerate with ie_windows.ps1, close with $w.Quit() on the wiring_diagrams window.

INFORMATION - any menu item opens this same left-pane tree — html

Geometry is identical for Parts Catalog, Repair/RRI, Specifications etc. Only the panel title and the tree CONTENTS differ. Confirmed across 3 sections.

targetx,y
panel title 90,151
panel close X 460,150
Function group label 383,177
Function group input 455,175
tree first row 165,223
document pane (right of divider) 900,400

Row pitch 18px. Expander x by depth: 8, 38, 55, 70.

VEHICLE PROFILE - CSC — html

targetx,y
sub-tab VEHICLE PROFILE 83,131
sub-tab CSC 185,131
view tab Component/Function 80,158
view tab Function group 220,158
list first row 100,201
list expanders 24,201
scrollbar 393,400

Row pitch 18px.

WORK LIST — html

targetx,y
sub-bar WORK LIST 60,131
sub-bar CHANGE WORK LIST 194,131
sub-bar SETTINGS 325,131
search input 573,174
search category dropdown 652,196
SEARCH 754,186
ADD 743,199
PRINT 1316,166
NEW 33,261
IMPORT 96,261
SAVE 161,261
CLOSE 222,261
NOTE 283,261
Group-by dropdown 1224,283
column header row 300,309
DELETE 40,673
ASSIGN JOB NUMBER 155,673
EXPORT 269,673
EDIT LIST 349,673
CHANGE VIN 445,673
ADD SW 42,703

Document view (INFORMATION > FAULT TRACING with a document open) — html

targetx,y
VCT2000 symbol (runs the diagnostic routine) 404,265
Continue 554,576
PRINT 1316,191
previous document 1295,171
next document 1336,171
document title 640,171

09 Hazards

Things that bite.

Destructive

“Previous Readout Found”

Entering DIAGNOSTICS for a VIN that already has a stored readout offers UPDATE — which erases it, permanently. Export from the DiagSwdlSession database first; that stored readout may be the only dated record of the car’s earlier state.

Silent failure

The exception dialog

VIDA throws a blocking error dialog that swallows every click afterwards without any outward sign. An automated run will appear to succeed and produce a dozen identical screens. Verify the page actually changed between steps.

Search

Two defaults conspire

Search defaults to category Parts and to Any-word matching. Together they return either nothing or a capped 200 results regardless of the phrase. Set searchCategory and searchAll=true.