python - 如何使用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(),但在画面中,我无法选择元素。怎么做?谢谢。
解决方案
嵌入式 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
推荐阅读
- node.js - Json 对象没有出现在浏览器上
- python - 从用户输入打印最小整数
- r - 将绘图转换为 ggplot 并添加水平线直到特定点
- neural-network - BatchNormalization 算作网络中的一层吗?
- javascript - 没有 JSON 或变量分配的 Javascript deepcopy
- javascript - 有没有办法在 p5.js 中正确分隔一串文本?
- c - 执行代码时出现分段错误(核心转储)错误
- c - 当我按下“q”键时,如何停止接受用户的输入?
- mysql - 尝试添加外键会导致“第 1 行出现错误 1064”
- android - 如何使我的 android 应用程序在不同的设备上正确扩展?