繁体   English   中英

如何使我的 python selenium 项目在 heroku 上工作

[英]how can I make my python selenium project work on heroku

所以我有这个 selenium 项目可以在本地完美运行,它只是一个从网站上抓取数据的脚本。 我设法成功地将脚本部署到 heroku 中,但是当我尝试激活它时,它向我显示了这些错误。

它给出了一个错误,它无法找到它应该从网站上抓取的一些 xpath 元素。 这是它显示的错误

raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@class=' _cs_button _cs_button--sm _cs_button--positive _cs_m-down--none']"}(会话信息:headless chrome=91.0.4472.77)

之后我决定在代码试图找到元素之前打印网站的源代码,因为我认为可能元素不存在所以它找不到它们,结果证明它收到的 js 来自网站没有被激活,因此之后没有收到 html。

我几乎不明白为什么在 heroku 上激活时,脚本不会激活从网站收到的 js

有人可以帮我解决这个问题吗

我猜您在 Heroku 实例中使用的 Python 版本大于 3.8,而本地版本不是。

在 Python 3.8 或更高版本中,现在使用is比较整数或字符串文字时会引发语法警告。 由于库试图将setting与空字符串进行比较,因此会引发这样的错误。 将调用脚本 firefox_profile.py 是因为firefox_profile.py将检查您的脚本使用的浏览器版本,这不会对您的脚本造成问题,因为这只是一个警告而不是异常

要解决此问题,您可以在 Heroku 实例中降级 Python 版本,或在 selenium 存储库中提交 PR。


更新:

由于我刚刚查看了官方存储库,该问题应该在最新版本中得到修复,您可以在此处找到提交。 您可以更新到最新版本的库来修复它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM