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

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 pattern-extrapolation suggests):

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

URL gotchas

  • /views/<contentUrl>/sheets?:edit=y rejected — needs real sheet name (resolve via Workbooks.populate_views(wb) + wb.views[0].content_url)
  • Tableau Cloud routes use /workbooks/<NUMERIC> (from wb.webpage_url), NOT LUID

tableauserverclient API

  • get_revisions(wb) doesn’t exist — use populate_revisions(wb) then wb.revisions

Calc dialog requires worksheet

Right-click data pane → Create Calculated Field works on WORKSHEETS only, not dashboards.

Reference

/opt/clis/cli-anything/tableau-cloud-author/.../core/page.py:enter_authoring_frame() — 7/7 critical selectors verified live.