Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使我的python selenium项目在heroku上工作_Python_Selenium_Heroku_Web Scraping - Fatal编程技术网

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

如何使我的python selenium项目在heroku上工作,python,selenium,heroku,web-scraping,Python,Selenium,Heroku,Web Scraping,所以我有一个selenium项目,它在本地运行得非常好,它只是一个脚本,从网站上抓取数据。我成功地将脚本部署到heroku中,但当我尝试激活它时,它显示了这些错误 它给出了一个错误,即找不到一些应该从网站上刮取的xpath元素。 这就是它显示的错误 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“//button[@class=”'

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

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

引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“//button[@class=”'''''''U cs\U button.\U cs\U button--sm.\U cs\U button--正的.\U cs\U m-down--none']} (会话信息:无头镀铬=91.0.4472.77)

在那之后,我决定在代码试图找到元素之前打印网站的源代码,因为我认为可能元素不在那里,所以它找不到它们,结果是它从网站接收到的js没有被激活,因此html在之后没有被接收

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


有人能帮我一下吗?我猜您在Heroku实例中使用的Python版本是>3.8,而本地版本不是

在Python3.8或更高版本中,当使用
is
比较整数或字符串文本时,它现在会发出语法警告。由于库试图将
设置
与空字符串进行比较,因此将引发此类错误。将调用脚本
firefox\u profile.py
,因为selenium将检查脚本使用的浏览器版本,这不会导致脚本出现问题,因为这只是一个警告而不是异常

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


更新:


我刚刚检查了官方存储库,这个问题应该在最新版本中修复,您可以找到提交。您可以更新到库的最新版本来修复它。

它应该只是一个警告?