Closed bertrandmartel closed 3 years ago
This would need to add select-region-server
API and input a specific coordinate to get the tupleIds. This would already gives the data back which makes the tooltip call useless. The coordinate are difficult to guess since it depends on the value of the specific zone (for the worksheet):
def selectRegion(scraper, worksheetName):
delayExecution(scraper)
payload = (
("worksheet", (None, worksheetName)),
("dashboard", (None, scraper.dashboard)),
("vizRegionRect", (None, json.dumps(
{"x": 548, "y": 138, "w": 0, "h": 0, "r": "viz"}))),
("mouseAction", (None, "simple")),
("zoneSelectionType", (None, "replace"))
)
print(payload)
r = scraper.session.post(
f'{scraper.host}{scraper.tableauData["vizql_root"]}/sessions/{scraper.tableauData["sessionid"]}/commands/tabsrv/select-region-no-return-server',
files=payload,
verify=scraper.verify
)
scraper.lastActionTime = time.time()
try:
return r.json()
except (ValueError, JSONDecodeError):
raise APIResponseException(message=r.text)
Closing this issue for now since it required to iterate all possible coordinate to make it work which is a rare usecase, maybe for some server rendered dashboard
From this usecase https://replit.com/@bertrandmartel/ScrapeTableauTooltip,
tupleIds
can be injected along with the tooltip API.This issue is about retrieving all the possible
tupleIds
if possible and pass thetupleIds
property in the request if specified