En essayant d'exécuter quelques tests, et je cours dans un barrage routier,Le sélénium ne se connecte pas
c'est le début du script où il est intercepté.
from selenium import selenium
import subprocess
import time
import sys
import socket
from os.path import dirname
import unittest
from pushdata import push
class selenium_tests(unittest.TestCase):
@classmethod
def setUpClass(self):
directory = dirname(__file__)
path = directory + '/selenium-server-standalone-2.28.0.jar'
sub = subprocess.Popen('exec java -jar ' + path,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True)
self.selenium_server = sub
count = 0
while True: # ensure the server is established
try:
self.selenium = selenium("localhost",
4444,
"*chrome",
"http://127.0.0.1:8000/resources/")
self.selenium.start()
break
except socket.error, v:
count += 1
if count == 10:
message = "- Selenium server took to long to establish"
print "\n", v, message
sys.exit()
time.sleep(1)
Pour exécuter les tests que je utilise la commande:
python -m unittest -v selenium_tests_mod
qui soulève:
[Errno 111] Connection refused - Selenium server took to long to establish
donc je sais qu'il a du mal à établir la connexion, tout simplement pas pourquoi?
Note: quand je lance cela en utilisant le framework de test de django cela fonctionne, mais pas lorsque je tente de l'exécuter manuellement
EDIT:
quand je lance le serveur de sélénium dans un séparé shell cela fonctionne
java -jar selenium-server-standalone-2.28.0.jar
maintenant je suppose cela peut être la cause:
sub = subprocess.Popen('exec java -jar ' + path,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True)