我正在尝试创建一个脚本来下载我的 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)
这将下载显示的第一个图表的 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
从断点处继续。根据需要调整时间。这应该足以让您走上正确的道路。