当前位置: 首页 > 知识库问答 >
问题:

从控制台运行的Selenium脚本不能在CRON中运行-Geckodriver错误

严俊彦
2023-03-14
#!/bin/sh

export DISPLAY=:10
cd /home/user
python3 selenium.py > /home/user/selenium.log 2>&1

回溯(最近一次调用):文件“/usr/local/lib/python3.5/dist-packages/selenium/webdriver/common/service.py”,第74行,在start stdout=self.log_file,stderr=self.log_file中)文件“/usr/lib/python3.5/subprocess.py”,第947行,在init restore_signals,start_new_session)文件“/usr/lib/python3.5/subprocess.py”,第1551行,在_execute_child中升高_num,err_msg)FileNotFounderRor:[Errno 2]没有这样的文件或目录:“GeckoDriver”

在处理上述异常时,又发生了一个异常:

回溯(最近一次调用):文件“so_login.py”,第12行,在setUp self.driver=webdriver.firefox()文件“/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py”,第142行,在init self.service.start()文件“/usr/local/lib/python3.5/dist-packages/selenium/webdriver.py”,第81行,在start os.path.baseName(self.path)T_Error_Message)Selenium.Common.Exceptions.WebDriverException:消息:“GeckoDriver”可执行文件需要在路径中。

我在控制台中也有这个错误,但我通过安装geckodriver并将其移动到/usr/local/bin解决了这个问题,它在控制台中运行良好,但为什么在CRON中不能运行呢?

共有1个答案

宋英杰
2023-03-14

请考虑使用pyvirtualdisplay为您管理窗口会话

用pip安装

$ pip install pyvirtualdisplay

然后在代码中添加类似以下内容:

from pyvirtualdisplay import Display


def main():
    # Display creates a virtual frame buffer and manages it for you
    with Display(visible=False, size=(1200, 1500)):
        # Run the test of your code here

    # When your code is finished and exits the with block, the with
    # context manager cleans up the virtual display for you


if __name__ == "__main__":
    main()
 类似资料:
  • 问题内容: 这可能是一个非常简单的问题,但是如何每两天在我的fedora dist上运行一个python脚本? 谢谢 安东尼斯 问题答案: 这是关于cron的问题。首先是在python脚本顶部添加SHEBANG行。 使您的脚本可执行 然后执行crontab -e并添加

  • 问题内容: 我正在编写一个通过System.out输出字符串的Java应用程序,我只想知道如何在IDE外部运行此应用程序。我有一个可执行的jar。如何在控制台中看到此输出? 问题答案: 基本上: Sun网站有更多信息

  • 在部署成功完成后,是否可以打印我的应用程序部署的URL?如果我能以某种方式获得这个URL,并将其打印在控制台上,那就最好了。 编辑我使用以下解决方案

  • 问题内容: 当我尝试从PyCharm IDE运行程序时,一切正常,但是如果我输入Fedora: 在shell提示中,我从1个模块收到导入错误。 当从IDE启动时,PyCharm可以执行哪些操作以使解释器找到我的依赖项?如何获得脚本以找到其依赖项,以便可以使用singe命令启动它? 问题答案: 有一些可能的原因可能导致这种情况: 相同的python解释器?检查与 它是同一工作目录吗?检查与 中的差异

  • 我正在尝试使用cron运行python脚本。脚本从命令行运行时没有问题,但从cron运行时matplotlib出现问题。错误如下。 Traceback(最近的调用最后): 文件"/home/ubuntu/python/spread.py",第154行,plot_spread(lat,lon, 文件,均值,maxs,mins,stdp,stdm,ens_members) 文件“/home/ubunt

  • 下载chromedriver并解压缩它。