首页 > 解决方案 > 如何使用python执行click()命令但在“tableau”上

问题描述

我对python真的很陌生,但我能够从网站上下载这种文件:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome() 
driver.get("http://www.yeastgenome.org/locus/S000001142/overview")
wait = WebDriverWait(driver, 4)
wait.until(EC.element_to_be_clickable((By.XPATH,"/html/body/div/div/div[2]/div[2]/section[2]/div/div[1]/div/div/div/div[1]/div/div[1]/div/a"))).click()

for i in range(1,5):
    i = str(i)
    wait.until(EC.element_to_be_clickable((By.XPATH,"/html/body/div/div/div[2]/div[2]/section[2]/div/div[1]/div/div/div/div[1]/div/div[1]/div/ul/li["+i+"]/a"))).click()

它对我有用,下载了那些文件。

问题是我了解到您需要检查网站上的元素才能执行 click(),但在画面中,我无法选择元素。怎么做?谢谢。

标签: pythonseleniumselenium-webdrivertableau-api

解决方案


嵌入式 Tableau 工作簿都放置在一个iframe框架内,因此您无法单选并单击该框架内的项目。您可以导航到另一个会为您提供 pdf 的 url,然后从那里使用 selenium。

您需要做的就是添加.pdf到您尝试访问的 url 的末尾,您将在浏览器中获得工作簿的 pdf 版本。

http://<servername>/#/views/<workbook>/sheet?:iid=7

会变成

http://<servername>/#/views/<workbook>/sheet.pdf

然后查找下载元素 ( id="download") 并使用 selenium 单击它。

下载元素

有关更多详细信息,请参阅 Tableau 中的此 kb。

https://help.tableau.com/current/pro/desktop/en-us/link_view.htm


推荐阅读