簡體   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