Python 硒单击按钮
Python selenium clicking a button
我正在尝试编写一个 python 脚本来使用下面的“下载 CSV”按钮自动下载 csv link:
https://chartink.com/screener/copy-supertrend-negative-breakout-1103
from selenium import webdriver
import pandas as pd
DRIVER_PATH = r"C:\Users\u123456\Downloads\chromedriver\chromedriver.exe"
d = webdriver.Chrome(executable_path=DRIVER_PATH)
d.get('https://chartink.com/screener/copy-supertrend-negative-breakout-1103')
download_button = pd.read_html(d.find_element_by_class_name('btn btn-default buttons-excel buttons-html5 btn-primary'))[0]
#table = pd.read_html(d.find_element_by_id('DataTables_Table_0').get_attribute('outerHTML'))[0]
print(download_button)
我没有找到关于如何单击该按钮并将其下载到本地驱动器的任何线索。任何帮助将不胜感激。
编辑:我尝试了下面的代码并让它工作,现在我想知道我们是否可以找到文件名并将其加载到 pandas 数据帧中。
element = d.find_element_by_link_text("Download csv")
element.click()
谢谢,
MC
要单击元素 下载 csv,您可以使用以下任一方法 :
使用link_text
:
driver.find_element_by_link_text("Download csv").click()
使用css_selector
:
driver.find_element_by_css_selector("a.btn.btn-default.buttons-excel.buttons-html5.btn-primary[value='Download backtest']").click()
使用xpath
:
driver.find_element_by_xpath("//a[@value='Download backtest' and text()='Download csv']").click()
理想情况下,要单击需要为 element_to_be_clickable()
引入 WebDriverWait 的元素,您可以使用以下任一方法 :
使用LINK_TEXT
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Download csv"))).click()
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.btn-default.buttons-excel.buttons-html5.btn-primary[value='Download backtest']"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@value='Download backtest' and text()='Download csv']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我正在尝试编写一个 python 脚本来使用下面的“下载 CSV”按钮自动下载 csv link: https://chartink.com/screener/copy-supertrend-negative-breakout-1103
from selenium import webdriver
import pandas as pd
DRIVER_PATH = r"C:\Users\u123456\Downloads\chromedriver\chromedriver.exe"
d = webdriver.Chrome(executable_path=DRIVER_PATH)
d.get('https://chartink.com/screener/copy-supertrend-negative-breakout-1103')
download_button = pd.read_html(d.find_element_by_class_name('btn btn-default buttons-excel buttons-html5 btn-primary'))[0]
#table = pd.read_html(d.find_element_by_id('DataTables_Table_0').get_attribute('outerHTML'))[0]
print(download_button)
我没有找到关于如何单击该按钮并将其下载到本地驱动器的任何线索。任何帮助将不胜感激。
编辑:我尝试了下面的代码并让它工作,现在我想知道我们是否可以找到文件名并将其加载到 pandas 数据帧中。
element = d.find_element_by_link_text("Download csv")
element.click()
谢谢, MC
要单击元素 下载 csv,您可以使用以下任一方法
使用
link_text
:driver.find_element_by_link_text("Download csv").click()
使用
css_selector
:driver.find_element_by_css_selector("a.btn.btn-default.buttons-excel.buttons-html5.btn-primary[value='Download backtest']").click()
使用
xpath
:driver.find_element_by_xpath("//a[@value='Download backtest' and text()='Download csv']").click()
理想情况下,要单击需要为 element_to_be_clickable()
引入 WebDriverWait 的元素,您可以使用以下任一方法
使用
LINK_TEXT
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Download csv"))).click()
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.btn-default.buttons-excel.buttons-html5.btn-primary[value='Download backtest']"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@value='Download backtest' and text()='Download csv']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC