想要使用 Selenium Python 单击下载 csv 按钮,但悬停时按钮会更改 class-名称?
Want to click download csv button using Selenium Python, but button changes class-name when hovered over?
我正在尝试通过单击网站上的下载 csv 按钮来保存 csv 文件。但是,我注意到 .click() 操作没有执行任何操作,并且我发现按钮的 class-名称从 'export-button is-csv' 更改为 'export-button is-csv hovering.' 但是,当我尝试 find_element_by_class_name() 在新的 class 名称上,它 returns 一个错误说它不存在。这是我的代码:
driver = webdriver.Chrome('chromedriver',options=options)
driver.get('https://www.rotowire.com/basketball/injury-report.php')
time.sleep(1)
download_csv=driver.find_element_by_class_name('export-button.is-csv')
download_csv.find_element_by_class_name('export-button.is-csv.hovering').click()
这是我收到的错误消息:
Message: no such element: Unable to locate element: {"method":"css selector","selector":".export-button is-csv.hovering"}
(Session info: headless chrome=94.0.4606.71)
想知道对此的具体修复是什么(我正在使用 Google Colabs 并且是 Selenium 的新手)。
只需直接从源中获取 table 然后使用 pandas 转换为数据帧并写入磁盘:
import requests
import pandas as pd
url = 'https://www.rotowire.com/basketball/tables/injury-report.php?team=ALL&pos=ALL'
jsonData = requests.get(url).json()
df = pd.DataFrame(jsonData)
df.to_csv('file.csv', index=False)
可以直接使用
button.is-csv
css selector
点击它。
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('https://www.rotowire.com/basketball/injury-report.php')
time.sleep(1)
download_csv = driver.find_element_by_css_selector('button.is-csv')
download_csv.click()
我正在尝试通过单击网站上的下载 csv 按钮来保存 csv 文件。但是,我注意到 .click() 操作没有执行任何操作,并且我发现按钮的 class-名称从 'export-button is-csv' 更改为 'export-button is-csv hovering.' 但是,当我尝试 find_element_by_class_name() 在新的 class 名称上,它 returns 一个错误说它不存在。这是我的代码:
driver = webdriver.Chrome('chromedriver',options=options)
driver.get('https://www.rotowire.com/basketball/injury-report.php')
time.sleep(1)
download_csv=driver.find_element_by_class_name('export-button.is-csv')
download_csv.find_element_by_class_name('export-button.is-csv.hovering').click()
这是我收到的错误消息:
Message: no such element: Unable to locate element: {"method":"css selector","selector":".export-button is-csv.hovering"}
(Session info: headless chrome=94.0.4606.71)
想知道对此的具体修复是什么(我正在使用 Google Colabs 并且是 Selenium 的新手)。
只需直接从源中获取 table 然后使用 pandas 转换为数据帧并写入磁盘:
import requests
import pandas as pd
url = 'https://www.rotowire.com/basketball/tables/injury-report.php?team=ALL&pos=ALL'
jsonData = requests.get(url).json()
df = pd.DataFrame(jsonData)
df.to_csv('file.csv', index=False)
可以直接使用
button.is-csv
css selector
点击它。
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('https://www.rotowire.com/basketball/injury-report.php')
time.sleep(1)
download_csv = driver.find_element_by_css_selector('button.is-csv')
download_csv.click()