2016-05-30 9 views
0

サーバーには画面がないため、リモートサーバー上でセレンを実行する必要があります。私は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 

、スクリプトが、私は損失を切り離す場合、またはすることができませんいずれかのように、私は、サーバーにアクセスしていた場所から同じ端末上で実行されますスクリプトが停止する接続、どうすればこの問題を処理できますか?

答えて

3

任意のブラウザでSeleniumを実行するために、サーバーに読み取りGUIは必要ありません。 Seleniumは、ChromeやFirefoxなどの実際のブラウザを備えた任意のサーバー上で簡単に実行できます。ここで

は、あなたがそれを操作できるよう助けるべきであるいくつかのコードです:

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

ありがとう、これは1つの問題を解決しますが、私はまだ接続の問題があります。サーバーからログアウトするとスクリプトを停止する方法を教えてください。 –

+0

'tmux'、' screen'あるいは 'nohup'さえもこの問題を解決する良い仕事ですが、私はJenkinsのようなCI/CDサーバーの下ですぐにこれらのテストを実行したいと考えています。 – sorin

+0

ありがとう、それは私のために働いた。 – sarvajeetsuman

1

あなたのスクリプトが実行を継続する場合は、サーバーへの接続が失われた場合でも、あなたは簡単にTmuxなどのターミナルソフトでこれを行うことができますまたはscreen

関連する問題