我正在尝试下载 csv 文件,可通过单击 this webpage 上标题为“导出数据”的按钮来获取该文件。 。鉴于该按钮运行一个 javascript 过程,我正在尝试利用 selenium 来实现此目的。我当前的以下尝试会生成错误消息:
"WebDriverException: unknown error: missing or invalid 'entry.level' (Session info: chrome=63.0.3239.132) (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.16299 x86_64)"
chrome_path = path
driver=webdriver.Chrome(chrome_path)
url = 'http://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=fangraphsdc&team=0&lg=all&players=0&sort=24%2cd'
driver.get(url)
driver.find_element_by_xpath('//*[@id="ProjectionBoard1_cmdCSV"]').click()
错误发生在代码的最后一行。有什么想法吗?
最佳答案
根据URL
您已分享 WebElement
文本为Export Data
位于<a>
内标签。因此,您可以单击包含以下代码行的链接:
driver.find_element_by_link_text("Export Data").click()
但是这个解决方案仍然失败,因为您的主要问题是您正在使用的二进制文件之间的版本兼容性,如下所示:
- 您正在使用
chromedriver=2.27.440174
- 的发行说明
chromedriver=2.27.440174
明确提到以下内容:
Supports Chrome v55-57
- 您正在使用
chrome=63.0.3239.132
- 的发行说明
chromedriver=2.34
明确提到以下内容:
Supports Chrome v61-63
- 您的
Selenium Version Info
我们不知道。 - 您的
java.version
我们不知道。
解决方案
- 升级
JDK
至近期水平JDK Version 8 Update 151
。 - 保留
ChromeDriver
至ChromeDriver v2.34
级别。 - 保留
Chrome
至Chrome v63.x
级别。 - 升级
Selenium
至当前水平Version 3.8.1
。 - 执行你的
Test
.
关于javascript - 使用 python selenium 从 javascript 链接下载 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48206402/