【问题标题】:Schedule selenium to run on a remote server安排 selenium 在远程服务器上运行
【发布时间】:2016-09-28 11:49:34
【问题描述】:

我需要在远程服务器上运行 selenium,因为服务器没有屏幕我使用 PhantomJS 作为 Web 驱动程序。这是我拥有的代码:

import time
import os,sys
reload(sys)  
sys.setdefaultencoding('utf8')
import re
from selenium import webdriver


url = 'https://wiki.python.org/moin/HowTo/Sorting'

driver_1 = webdriver.PhantomJS()
driver_1.get(url)
content = driver_1.page_source

在我的电脑上,它运行良好,但在那之后,我会打开其他页面,所以我需要代码继续运行一段时间。 我正在从终端运行脚本:

python my_script.py

并且脚本将在我访问服务器的同一终端上执行,因此我将无法断开连接,或者如果连接丢失,脚本将停止,我该如何处理这个问题?

【问题讨论】:

    标签: python selenium phantomjs remote-server


    【解决方案1】:

    如果您希望脚本在与服务器断开连接的情况下继续执行,您可以使用Tmuxscreen 等终端软件轻松执行此操作

    【讨论】:

      【解决方案2】:

      您不需要在服务器上读取 GUI 即可在任何浏览器上运行 Selenium。 Selenium 可以轻松地在任何带有 Chrome 或 Firefox 等真实浏览器的服务器上运行。

      这里有一些代码可以帮助你让它工作:

      from pyvirtualdisplay import Display
      display = Display(visible=0, size=(800, 600))
      display.start()
      driver = webdriver.Chrome() # Or Firefox()
      

      【讨论】:

      • 谢谢,这解决了一个问题,但我仍然会遇到连接问题,如果我退出服务器,如何避免停止脚本?
      • tmuxscreen 甚至nohup 都很好地解决了这个问题,但我确实假设您很快就会想在像 Jenkins 这样的 CI/CD 服务器下运行这些测试。
      • 谢谢,它对我有用。
      猜你喜欢
      • 1970-01-01
      • 2021-06-06
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2011-09-20
      • 2011-05-11
      • 2014-12-15
      相关资源
      最近更新 更多