使用selenuimbase下载tableau仪表板

问题描述 投票:0回答:1

我正在尝试创建一个脚本来下载我的 Tableau 公共可视化并将其发送给我。这是为了一个项目。单击下载按钮后我不断遇到问题

from seleniumbase import BaseCase
import pyautogui

class Test(BaseCase): def test_basic(self): # Open Tableau page self.open("https://public.tableau.com/app/discover/viz-of-the-day") self.maximize_window()

    # Wait for page to load
    self.wait_for_ready_state_complete()
    
    # Click on the first visualization
    self.click("ul._galleryList_1hb88_2 li:first-child a")
    
    # Wait for page to load
    self.wait_for_ready_state_complete()
    
    
    self.sleep(2)
    self.click("//*[@id='root']/div/div[4]/div[1]/div/div[2]/button[4]")
       
    self.sleep(5)
    pyautogui.press('enter')
    
    self.sleep(5)
BaseCase.main(name, file)

这可行,但它只允许我下载 png 格式的仪表板。

我尝试使用下面的代码来帮助查看 pdf,但它不起作用。

from seleniumbase import BaseCase
import pyautogui

class Test(BaseCase): def test_basic(self): # Open Tableau page self.open("https://public.tableau.com/app/discover/viz-of-the-day") self.maximize_window()

    # Wait for page to load
    self.wait_for_ready_state_complete()
    
    # Click on the first visualization
    self.click("ul._galleryList_1hb88_2 li:first-child a")
    
    # Wait for page to load
    self.wait_for_ready_state_complete()
    
    
    self.sleep(2)
    self.click("//*[@id='root']/div/div[4]/div[1]/div/div[2]/button[4]")
       
    self.sleep(5)
    pyautogui.press('tab')
        self.sleep(5)
    pyautogui.press('tab')
        self.sleep(5)
    pyautogui.press('tab')
        self.sleep(5)
    pyautogui.press('enter')
    
    self.sleep(5)
BaseCase.main(name, file)
python selenium-webdriver seleniumbase
1个回答
0
投票

这将下载显示的第一个图表的 PDF:

from seleniumbase import BaseCase
BaseCase.main(__name__, __file__)

class TableauTest(BaseCase):
    def test_tableau_pdf_download(self):
        self.open("https://public.tableau.com/app/discover/viz-of-the-day")
        self.click('img[alt="Workbook thumbnail"]')
        self.sleep(4)
        self.click('button[data-tip="Download"]')
        self.sleep(1)
        self.switch_to_frame('iframe[title="Data Visualization"]')
        self.click('button[data-tb-test-id="DownloadPdf-Button"]')
        self.click('button[data-tb-test-id="export-pdf-export-Button"]')

        breakpoint()

末尾有一个

breakpoint()
,可在浏览器窗口仍打开的情况下暂停脚本。输入
c
并按
Enter
从断点处继续。根据需要调整时间。这应该足以让您走上正确的道路。

© www.soinside.com 2019 - 2024. All rights reserved.