javascript - 使用 python selenium 从 javascript 链接下载 csv 文件

标签 javascript python csv selenium web-scraping

我正在尝试下载 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/

相关文章:

Python 比较 2 个列表是否有重复项

python - 使用 gmail 在 R 中通过电子邮件发送附件

C++ 嵌套 for 循环

python - 错误 : Unsupported format, 或损坏的文件:预期的 BOF 记录

javascript - 以圆形方式放置瓷砖

javascript - 单击一个元素后显示元素

javascript - 如何在更改元素后保留 Bootstrap 工具提示?

javascript - 如何使用 javascript、css 和/或 html 使文本在表​​格中的图像上居中?

python - 傅立叶变换的逆给出 “data type not supported”错误

线程 "main"java.lang.NegativeArraySizeException : -28 中的 Java ArrayList 异常