Tableau Cloud Web Authoring two-step viewer→authoring transition

Tableau Cloud Web Authoring is a TWO-STEP transition — canvas DOM at TOP-LEVEL, not iframe

Confirmed live 2026-04-25 against Tableau Cloud 2026.1.1, Runwal site.

The actual flow (NOT what the docs / pattern-extrapolation suggests):

  1. Navigate to /views/<contentUrl>/<sheet>?:edit=y — page loads with a viewer iframe iframe[title='Data Visualization'] containing the VIEWER toolbar
  2. Inside that iframe, click [data-tb-test-id='viz-viewer-toolbar-button-edit']
  3. The TOP-LEVEL page transitions to /authoring/<contentUrl>/<sheet> — the iframe goes blank (about:blank)
  4. The actual authoring DOM is at TOP-LEVEL of the page (VisualizationContainer, *-ToolbarButton, tab*ZoneObject, authMenuBarPublishButtonMainPart-Button, tabAuthMenuBarExit-Button)

Two URL gotchas

  • /views/<contentUrl>/sheets?:edit=y is invalid — Tableau rejects generic “sheets” path. URL must point to a real sheet/dashboard. Resolve first view via tableauserverclient.Workbooks.populate_views(wb) then wb.views[0].content_url (last segment after /sheets/).
  • Tableau Cloud routes use /workbooks/<NUMERIC_ID> — NOT the LUID. Extract from wb.webpage_url. LUID is for REST API only.

tableauserverclient API correction

server.workbooks.get_revisions(wb) does NOT exist. Use server.workbooks.populate_revisions(wb) then access wb.revisions.

Calc dialog requires worksheet context

The “right-click data pane → Create Calculated Field” path only works on WORKSHEETS, not dashboards. If a workbook’s first view is a dashboard, navigate to a worksheet sheet tab first OR use Analysis menu (worksheet-only).

Reference implementation

/opt/clis/cli-anything/tableau-cloud-author/agent-harness/cli_anything/tableau_cloud_author/core/page.py:enter_authoring_frame() — verified live 2026-04-25; 7/7 critical authoring selectors resolve at top-level after the click-Edit transition.